一 概念
二 訪問者模式的優點和缺點
三 c++**實現
visitor.h
#pragma once
#include #include #include using namespace std;
class action; //類的前向宣告
//人的抽象類
class person
;//狀態的抽象類
class action
;class man : public person
void accept(action* visitor) override };
class woman : public person
void accept(action* visitor) override
private:
string m_woman;
};//具體狀態類
class success : public action
void getwomanconclusion(person* concreteelementa) override };
//失敗
class failing : public action
void getwomanconclusion(person* concreteelementa) override };
//戀愛
class amativeness : public action
void getwomanconclusion(person* concreteelementa) override };
class objectstructure
void detach(person* element)
}} void display(action* visitor)
private:
listelements;
};
lesson1.cpp
#include "visitor.h"
#include using namespace std;
int main()
執行結果
024 第28章 訪問者模式
簡述 訪問者模式 表示乙個作用於某物件結構中各個元素的操作,它使你可以在不改變各元素的類的前提下定義作用於這些元素的新操作。訪問者模式包括 抽象訪問者類 具體訪問者類 物件列舉結構類 抽象元素類 具體元素類。抽象訪問者類 為該物件結構中的每個具體元素類物件宣告乙個visit操作。具體訪問者類 實現每...
28 訪問者模式
表示乙個作用於某物件結構中的各元素的操作,它使你可以在不改變各元素的前提下定義作用於這些元素的新操作。適用於資料結構相對穩定,又有易於變化的演算法的系統 就是element穩定,visitor經常變化 由於把資料結構和資料結構上的操作進行了解耦,也就是把處理從資料結構中分離出來,使得增加新的操作很容...
訪問者模式
訪問者模式 visitor pattern 訪問者模式是物件的行為模式。訪問者模式的目的是封裝一些施加於某種資料結構元素之上的操作。一旦這些操作需要修改的話,接受這個操作的資料結構則可以保持不變。一 問題 集合是大多數的系統都要處理的一種容器物件,它儲存了對其它物件的引用。一般情況下,在集合上採取的...