訪問者模式

2021-09-22 20:21:08 字數 576 閱讀 6997

迭代器模式可以用來遍歷具有相同介面的物件的容器,並對這些物件做某一型別的處理。那對於沒有實現同一介面,並且對這些物件的操作也不同的情況,該怎麼遍歷呢?於是就有了訪問者模式。

訪問者模式就是用於對乙個資料結構中不同型別的元素,進行不同的操作。比如搬家要對家裡的家具和電器做不同的處理,

家具扔掉,電器賣掉。

其實訪問者模式中資料結構中的元素也會實現共同的介面或者也有共同的父類,這樣才好做遍歷,只是這與其中具體的操作無關。

具體的是,會有多個不同的具體元素類。element1,element2. 他們會有自己的業務方法dosomething(), 以及accept(visitor visitor)方法來決定接受誰的訪問。當然還有visitor類,有visit(element1 el1), visit(element2 el2)方法。

訪問者模式通常用來做資料統計。如,把公司所有員工的工資進行統計,但是普通員工和經理的工資又有區別,比如獎金不同,工資係數不同,這樣就可以使用訪問者模式對其分別進行處理。

還有可以對乙個物件進行多種處理,這樣就可以設定多種visitor。如可以將公司所有員工的基本資訊列印出來,同時也可以將公司所有員工的工資進行統計。

訪問者模式

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

訪問者模式

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

訪問者模式

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