訪問者模式(Visitor Pattern)

2022-03-10 02:47:42 字數 1547 閱讀 1379

定義:封裝某些作用於某種資料結構中各元素的操作,它可以在不改變資料結構的前提下定義作用於這些元素的新的操作。

類圖:

**:

public

abstract

class

visitor

public

class

concreteonevisitor : visitor

visited by

", one, this

); }

public

override

void

visitortwoelement(twoelement two)

visited by

", two, this

); }

}public

class

concretetwovisitor : visitor

visited by

", one, this

); }

public

override

void

visitortwoelement(twoelement two)

visited by

", two, this

); }

}public

abstract

class

element

public

class

oneelement : element

}public

class

twoelement : element

}//通過該類objectstruct把element和visitor串聯

public

class

objectstruct

public

void

detach(element element)

//展示

public

void

objectaccept(visitor visitor)}}

呼叫:

objectstruct os = new

objectstruct();

os.attach(

newoneelement());

os.attach(

newtwoelement());

concreteonevisitor one = new

concreteonevisitor();

concretetwovisitor two = new

concretetwovisitor();

os.objectaccept(one);

os.objectaccept(two);

結果:

訪問者模式

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

訪問者模式

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

訪問者模式

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