訪問者模式(visitor)
訪問者模式是編者自學習設計模式以來最難的乙個模式。
定義:表示乙個作用於某物件結構中的各元素的操作,它使你可以在不改變各元素的類的前提下定義作用於這些元素的新操作。
#include
using namespace std;
class visitor;
class library;
/*建立資料結構並且提供訪問者的介面*/
class book:public library
int getofpage()
void accept(visitor *visitor);
};class file:public library
int getofpage()
void accept(visitor *visitor);
};class visitor
virtual void getofbookpage(book *t)=0;
virtual void getoffilepage(file *t)=0;
};/*增加不同處理功能的訪問者*/
class bookpage:public visitor
int main(void)
訪問者模式的優點在於可以將處理和資料結構分離開,並且靈活的新增處理,但是前提是我們的資料結構相當的穩定如果需要建立新的資料結構那麼不要使用訪問者模式。每增加乙個新的操作就增加乙個新的訪問者,訪問者只需要傳入資料,那麼在資料物件中對訪問者提供介面,再將自己的資料傳入訪問者即可
訪問者的缺點就是將新增新的資料結構變得困難。
Visitor(訪問者模式)
名 稱 visitor 訪問者模式 意 圖 表示乙個作用於某物件結構中的各元素的操作。它使你可以在不改變各元素的類的前提下定義作用於這些元素的新操作。適 用 環 境 u 乙個物件結構包含很多類物件,它們有不同的介面,而你想對這些物件實施一些依賴於其具體類的操作。u 需要對乙個物件結構中的物件進行很多...
訪問者模式(Visitor)
訪問者模式 visitor 表示乙個作用於某物件結構中的各元素的操作。他使你可以在不改變各元素的類的前提下定義作用於這些元素的新操作。訪問者模式適用於資料結構相對穩定的系統。他把資料結構和作用於結構上的操作之間的耦合解脫開,使得操作集合可以相對自由地演化。訪問者模式的目的是要把處理從資料結構分離出來...
訪問者模式 Visitor
訪問者模式 visitor 首先看一下男人與女人不同狀態下反應的實現 結構圖 狀態的抽象類和人的抽象類 abstract class action abstract class person 在這裡關鍵在於人只分為男人與女人,分類穩定 具體狀態類 成功 class success action 時,...