訪問者模式

2021-08-07 08:52:30 字數 1358 閱讀 4524

訪問者模式即表示乙個作用於某物件結構中的各元素的操作,它使我們可以在不改變各元素的類的前提下定義作用於這些元素的新操作。

自我理解是 比如說資料結構固定的,把他的一直在改變的行為給抽出來寫成觀察者類.

參與者:

vistor: 抽象訪問者。為該物件結構中的concreteelement的每乙個類宣告的乙個操作。 

concretevisitor: 具體訪問者。實現visitor申明的每乙個操作,每乙個操作實現演算法的一部分。 

element: 抽象元素。定義乙個accept操作,它以乙個訪問者為引數。 

concreteelement: 具體元素 。實現accept操作。 

objectstructure: 物件結構。能夠列舉它的元素,可以提供乙個高層的介面來允許訪問者訪問它的元素。

//例:人類為男人和女人

遇到同一狀態,兩人的處理結果是不同的

public abstract class person

public override void accept(ivisitor visitor)

女人類,……

//下面是抽象狀態類

public inte***ce   ivisitor

class succeed : ivisitor

時,背後多半有乙個偉大的女人.", man.gettype ().name ,this .gettype ().name );

}public void getwomanconclusion(person woman)

時,背後多半有乙個不成功的男人.", woman.gettype().name , this.gettype().name);}}

//下面是 

物件結構 類

class objectstructure

public void del(person element)

//遍歷顯示

public void display(ivisitor visitor)}}

下面是client 呼叫

//new 物件結構

objectstructure o = new objectstructure();

o.add(new man());

o.add(new woman());

o.display(new love());

結果

訪問者模式

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

訪問者模式

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

訪問者模式

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