訪問者模式

2021-10-04 03:41:00 字數 1831 閱讀 4679

1)    訪問者模式(visitor pattern),封裝一些作用於某種資料結構的各元素的操作,它可以在不改變資料結構的前提下定義作用於這些元素的新的操作。

2)    主要將資料結構與資料操作分離,解決資料結構和操作耦合性問題

3)    訪問者模式的基本工作原理是:在被訪問的類裡面加乙個對外提供接待訪問者的介面

4)    訪問者模式主要應用場景是:需要對乙個物件結構中的物件進行很多不同操作(這些操作彼此沒有關聯),同時需要避免讓這些操作"汙染"這些物件的類,可以選用訪問者模式解決

1)    visitor 是抽象訪問者,為該物件結構中的concreteelement的每乙個類宣告乙個visit操作

2)    concretevisitor :是乙個具體的訪問值 實現每個有visitor 宣告的操作,是每個操作實現的部分.

3)    objectstructure 能列舉它的元素, 可以提供乙個高層的介面,用來允許訪問者訪問元素

4)    element 定義乙個accept 方法,接收乙個訪問者物件

5)    concreteelement 為具體元素,實現了accept 方法

1)    應用例項要求

將人分為男人和女人,對歌手進行測評,當看完某個歌手表演後,得到他們對該歌手不同的評價(評價有不同的種類,比如成功、失敗等),請使用訪問者模式來說實現

2)    思路分析和**(類圖)

3)    **實現

public abstract class action
public class man extends person 

}

public class man extends person 

}

public class woman extends person

}

public class success extends action 

@override

public void getwomanresult(woman woman)

}

public class fail extends action 

@override

public void getwomanresult(woman woman)

}

//資料結構,管理很多人(man , woman)

public class objectstructure

//移除

public void detach(person p)

//顯示測評情況

訪問者模式

訪問者模式 visitor pattern 訪問者模式是物件的行為模式。訪問者模式的目的是封裝一些施加於某種資料結構元素之上的操作。一旦這些操作需要修改的話,接受這個操作的資料結構則可以保持不變。一 問題 集合是大多數的系統都要處理的一種容器物件,它儲存了對其它物件的引用。一般情況下,在集合上採取的...

訪問者模式

行為模式中的訪問者模式 訪問者模式是物件的行為模式。訪問者模式的目的是封裝一些施加於某種資料結構元素之上的操作,一旦這些操作需要修改的話,接受這個操作的資料結構則可以保持不變。動機 類層次結構中可能經常由於引入新的操作,從而將型別變得脆弱。在軟體構建過程中,由於需求的改變,某些類層次結構中常常需要增...

訪問者模式

1.說明 namespace visitorspattern 象棋類 public abstract class chess public class redchess chess public class blackchess chess 在贏的情況下的狀態 public class win ac...