出過書的朋友都知道,對於你出的一本書,不同型別的讀者會給你不同的反饋,因為他們看到了不同的層次,讀到了不同的味道。這裡的讀者和書是兩類事物,他們雖有聯絡,卻是比較弱的聯絡,我們可以將其分開處理,這種方式在程式中稱作訪問者模式。讀者就是訪問者,書是被訪問的物件,閱讀就是訪問行為。本篇將詳細梳理訪問者設計模式。
訪問者模式(visitor pattern
) 也是相對簡單的模式,它是封裝一些作用於某種資料結構中的各元素的操作,並可以在不改變資料結構的前提下定義作用於這些元素的新的操作。訪問者模式將資料結構和操作(演算法)進行了解耦,而且能更方便地拓展新的操作。
訪問者模式的通用類圖關係如下圖所示:
從上面圖中可以看出,訪問者模式主要包含五個角色:
22 訪問者模式 Visitor
visitor模式 visitor模式表示乙個作用於某物件結構中的各元素的操作。它使你可以在不改變各元素的類的前提下定義作用於這些元素的新操作。visitor模式將有關的行為集中到乙個訪問者物件中,即將更新 變更 封裝到乙個類中 訪問操作 並由待更改類提供乙個接收介面。visitor模式的目的是要把...
設計模式 訪問者模式
訪問者模式是一種資料操作與資料結構分離的設計模式,訪問者模式的基本想法是,軟體系統中擁有乙個由許多物件構成的 比較穩定的物件結構,這些物件的類都擁有乙個accept方法用來接受訪問者物件的訪問。訪問者是乙個介面,它擁有乙個visit方法,這個方法對訪問到的物件結構中不同型別的元素作出不同的處理。在物...
設計模式 訪問者模式
訪問者模式 visitor 表示乙個作用於某物件結構中的各元素的操作。它使你可以在不改變各元素的類的前提下定義作用於這些元素的新操作。例子 男人和女人在不同的狀態下會有不同反應,採用訪問者模式,可以增加狀態很方便 抽象狀態類 class action 男人反應 virtual void getwom...