C Chapter24 訪問者模式

2021-05-23 05:27:12 字數 983 閱讀 6572

訪問者模式(visitor),表示乙個作用於某物件結構中的各元素的操作。它使你可以在不改變各元素的類的前提下定義作用於這些元素的新操作。訪問者模式適用於資料結構相對穩定的系統。它把資料結構和作用於結構上的操作之間的耦合解脫開,使得操作集合可以相對自由地演化。訪問者模式的目的是要把處理從資料結構分離出來。很多系統可以按照演算法和資料結構分開,如果這樣的系統有比較穩定的資料結構,又有易於變化的演算法的話,使用訪問者模式就是比較合適的,因為訪問者模式使得演算法操作的增加變得容易。反之,如果這樣的系統的資料結構物件易於變化,經常要有新的資料物件增加進來,就不適合使用訪問者模式。

訪問者模式的優點就是增加新的操作很容易,因為增加新的操作就意味著增加乙個新的訪問者。訪問者模式將有關的行為集中到乙個訪問者物件中。通常concretevisitor可以單獨開發,不必跟concreteelement寫在一起。訪問者的缺點其實也就是使增加新的資料結構變得困難了。

訪問者模式(visitor)結構圖

訪問者模式基本**

訪問者模式 visitor.h、concretevisitor.h、element.h、concreteelement.h、objectstructure.h

訪問者模式 

visitor.h

concretevisitor.h

element.h

concreteelement.h

objectstructure.h

客戶端       

//#include "stdafx.h"

#include "objectstructure.h"

#include "concreteelement.h"

#include "concretevisitor.h"

void freeptr(void* vptr)

}int _tmain(int argc, _tchar* argv)

return 0;}

24種設計模式 訪問者模式

定義 封裝一些作用於某種資料結構 list set map 中的各元素的操作,它可以在不改變資料結構的前提下定義作用於這些元素的新的操作。一 訪問員工資訊 1.訪問者介面 public inte ce ivisitor2.訪問者實現 public class visitor implements i...

訪問者模式

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

訪問者模式

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