1.c語言中**基本都過函式指標來完成。c++中主要通過介面的方式完成**。而visitor就是實現介面**的一種方式。
1.首先定義個乙個介面visitor類,
classclassvisitor
;
2.要獲得**結果的(father)類需要繼承這個visitor類,並實現oncallback介面。
void father::oncallback(int a, char *b)
3.底層通過呼叫**函式oncallback函式,**資訊。底層需要實現乙個setvisitor函式方便上層傳遞上層物件,並繼承提供setvistitor的介面類
int father::int()
一共有三/四個類,1個上層類:獲取**資訊,實現**介面。
1個底層類:實現設定訪問者介面,上傳資訊。
1個含有**函式的介面類,供給上層繼承。
1.個含有設定訪問介面的類,供給下層繼承。(可單獨設定乙個類讓底層類來繼承,亦可以直接放在底層類中)
3.4兩個類可實現為類中類,也可單獨實現,就是將兩個抽象類聯絡到了一起。
C 設計模式 訪問者模式
表示乙個作用於某物件結構中的各元素的操作。它使你可以在不改變各元素類的前提下定義作用於這些元素的新操作。1.visitor 抽象訪問者角色,為該物件結構中具體元素角色宣告乙個訪問操作介面。該操作介面的名字和引數標識了傳送訪問請求給具體訪問者的具體元素角色,這樣訪問者就可以通過該元素角色的特定介面直接...
C 設計模式 訪問者模式
1 訪問者模式定義 表示乙個作用於其物件結構中的各個元素的操作。訪問者模式是一種物件行為型模式,它為操作儲存不同的型別元素的物件結構提供了一種解決方案,使用者可以對不同型別的元素施加不同的操作。訪問者模式常常和組合模式一起使用。2 訪問者模式結構 該模式包含五種角色 1 抽象訪問者類 visitor...
C 設計模式 訪問者模式
一.介紹 訪問者模式 visitor pattern 屬於行為型模式。表示乙個作用於某物件結構中的各元素的操作,它使你可以在不改變各元素的類的前提下定義作用於這些元素的新操作。二.實現 舉個例子,如果有元素a b類,想呼叫這些元素中的print方法,很簡單地,只要例項化去呼叫就可以。public a...