封裝一些作用於某種資料結構中的各元素,它可以在不改變資料結構的前提下定義作用於這些元素的新的操作.
抽象訪問者抽象類或者介面,宣告訪問者可以訪問哪些元素
具體訪問者
實現具體該幹什麼
抽象元素
介面或者抽象類,宣告接受哪一類訪問者訪問.
具體元素
實現具體方法
結構物件
元素產生者,一般容納在容器中.
符合單一職責原則優秀的擴充套件性
靈活性非常高
具體元素對訪問者公布細節抽象元素具體元素變更比較困難
違背了依賴倒置原則
public
abstract
class element
具體元素
public
class
concreteelement1
extends
element
@override
void accept(ivisitor ivisitor)
}
public
class
concreteelement2
extends
element
@override
void accept(ivisitor ivisitor)
}
抽象訪問者
public
inte***ce ivisitor
具體訪問者
public
class
visitor
implements
ivisitor
@override
public
void
visit(concreteelement2 concreteelement2)
}
訪問者模式
訪問者模式 visitor pattern 訪問者模式是物件的行為模式。訪問者模式的目的是封裝一些施加於某種資料結構元素之上的操作。一旦這些操作需要修改的話,接受這個操作的資料結構則可以保持不變。一 問題 集合是大多數的系統都要處理的一種容器物件,它儲存了對其它物件的引用。一般情況下,在集合上採取的...
訪問者模式
行為模式中的訪問者模式 訪問者模式是物件的行為模式。訪問者模式的目的是封裝一些施加於某種資料結構元素之上的操作,一旦這些操作需要修改的話,接受這個操作的資料結構則可以保持不變。動機 類層次結構中可能經常由於引入新的操作,從而將型別變得脆弱。在軟體構建過程中,由於需求的改變,某些類層次結構中常常需要增...
訪問者模式
1.說明 namespace visitorspattern 象棋類 public abstract class chess public class redchess chess public class blackchess chess 在贏的情況下的狀態 public class win ac...