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...