行為型模式 訪問者

2021-10-13 10:22:39 字數 884 閱讀 6751

表示乙個作用於某物件結構中的各元素的操作。它使你可以在不改變各元素的類的前提下定義作用於這些元素的新操作。

訪問者模式(visitor)是一種操作一組物件的操作,它的目的是不改變物件的定義,但允許新增不同的訪問者,來定義新的操作。

訪問者模式的設計比較複雜,如果我們檢視gof原始的訪問者模式,它是這麼設計的:

┌─────────┐       ┌───────────────────────┐

│ client │─ ─ ─ >│ visitor │

└─────────┘ ├───────────────────────┤

│ │visitelementa(elementa)│

│visitelementb(elementb)│

│ └───────────────────────┘

▲│ ┌───────┴───────┐

│ │

│ ┌─────────────┐ ┌─────────────┐

│ visitora │ │ visitorb │

│ └─────────────┘ └─────────────┘

▼┌───────────────┐ ┌───────────────┐

│objectstructure│─ ─ ─ ─>│ element │

├───────────────┤ ├───────────────┤

│handle(visitor)│

行為型模式 訪問者模式

在訪問者模式 visitor pattern 中,我們使用了乙個訪問者類,它改變了元素類的執行演算法。通過這種方式,元素的執行演算法可以隨著訪問者改變而改變。這種型別的設計模式屬於行為型模式。根據模式,元素物件已接受訪問者物件,這樣訪問者物件就可以處理元素物件上的操作。主要將資料結構與資料操作分離。...

行為型模式 訪問者模式

在訪問者模式 visitor pattern 中,我們使用了乙個訪問者類,它改變了元素類的執行演算法。通過這種方式,元素的執行演算法可以隨著訪問者改變而改變。這種型別的設計模式屬於行為型模式。根據模式,元素物件已接受訪問者物件,這樣訪問者物件就可以處理元素物件上的操作。意圖 主要將資料結構與資料操作...

行為型模式 訪問者模式

定義 目的時封裝一些施加於某些資料結構元素之上的操作,一但這些操作需要修改,接受這些操作的資料結構則可以保持不變。角色 抽象訪問者 定義cpu和硬碟的訪問 屬性 具體訪問者 實現訪問 硬體型別和執行 抽象元素 定義硬體型號,運轉,訪問 引數 抽象訪問者 具體元素 實現cpu和硬碟的抽象方法 結構物件...