摘要:訪問者模式一訪問者模式定義表示一個作用于某對象結構中的各元素操作它使你可以在不改變各元素類的前提下,定義作用于這些元素的新操作角色抽象訪問者對象具體訪問者對象抽象元素對象具體元素對象結構對象二具體實現創建抽象元素對象創建具體元素對象創建抽象
訪問者模式
一. 訪問者模式 1.1 定義表示一個作用于某對象結構中的各元素操作.它使你可以在不改變各元素類的前提下,定義作用于這些元素的新操作.
1.2 角色抽象訪問者對象(Visit).
具體訪問者對象(ConcreteVisit).
抽象元素對象(Element).
具體元素對象(ConcreteElement).
結構對象(ObjectStructure).
二. 具體實現 2.1 創建抽象元素對象public interface IElement { void accept(IVisitor visitor); }2.2 創建具體元素對象
public class ElementA implements IElement { @Override public void accept(IVisitor visitor) { visitor.visit(this); } } public class ElementB implements IElement { @Override public void accept(IVisitor visitor) { visitor.visit(this); } }2.3 創建抽象訪問者對象
public interface IVisitor { void visit(ElementA element); void visit(ElementB element); }2.4 創建具體訪問者對象
public class Visitor implements IVisitor { @Override public void visit(ElementA element) { System.out.println("ElementA visit ... "); } @Override public void visit(ElementB element) { System.out.println("ElementB visit ... "); } }2.5 調用
public static void main(String[] args) { IElement element = new ElementA(); IVisitor visitor = new Visitor(); element.accept(visitor); element = new ElementB(); element.accept(visitor); }2.6 輸出
ElementA visit ... ElementB visit ...三. 優缺點 3.1 優點
良好的擴展性.
靈活性.
3.2 缺點增加新的元素類困難.
四. 源碼https://github.com/Seasons20/DisignPattern.git
END
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/69748.html
摘要:訪問者模式解決的問題在我們的代碼編寫過程當中,經常需要對一些類似的對象添加一些的代碼,我們以一個計算機對象打印組成部分為例來看下抽象基類獲取名稱類內存類鍵盤類計算機類循環打印各個組成部分這個時候上面的代碼看上去好像很完美的樣子,但是問 訪問者模式解決的問題 在我們的代碼編寫過程當中,經常需要對一些類似的對象添加一些的代碼,我們以一個計算機對象打印組成部分為例來看下: /** ...
摘要:原文地址原文作者是抽象語法樹的縮寫詞,表示編程語言的語句和表達式中生成的。解釋器將會遍歷該數組并執行里面的語句。,,,是一組相關的類,每一個類都需要攜帶方法以使解釋器獲得它們的值或者對它們求值。 原文地址:What is an Abstract Syntax Tree 原文作者:Chidume Nnamdi showImg(https://segmentfault.com/img...
摘要:概念訪問者模式實際上是讓外部類能夠獲取樹形結構的每個節點的對象,對每個對象進行操作的模式,他能讓我們在不改動原有樹形結構的基礎上擴展功能。 概念: 訪問者模式實際上是讓外部類能夠獲取樹形結構的每個節點的對象,對每個對象進行操作的模式, 他能讓我們在不改動原有樹形結構的基礎上擴展功能。比如統計等等 在這種模式下,必須有的幾個要素: 1: 具體的元素對象, 訪問者實際要訪問的位置(即節...
摘要:但是發出者并不清楚到底最終那個對象會處理該請求,所以,責任鏈模式可以實現,在隱瞞客戶端的情況下,對系統進行動態的調整。因為訪問者模式使得算法操作增加變得容易。訪問者模式將有關行為集中到一個訪問者對象中,其改變不影響系統數據結構。 總體分為3大類:創建型模式 (5種):工廠方法、抽象工廠、單例、建造者、原型結構型模式(7種):適配器、裝飾器、代理、外觀、橋接、組合、享元行為型模式(11種...
閱讀 3281·2021-11-25 09:43
閱讀 2084·2021-09-22 10:02
閱讀 3311·2021-09-06 15:00
閱讀 2298·2019-08-30 15:56
閱讀 2347·2019-08-30 15:54
閱讀 3224·2019-08-30 14:14
閱讀 2258·2019-08-29 17:25
閱讀 2902·2019-08-29 17:16