乙個觀察者, 訪問兩個element,concreteelementa 和 concreteelementb, concreteelementa 只有name屬性, 所以訪問它是只展示name值, concreteelementb除了name之外, 還具有乙個綽號nickname屬性, 所以訪問它要展示兩個屬性, 類命名方式和角色名保持一致
* element(元素)角色
* @author 七夜雪
* @create 2018-11-24 21:36
*/public
inte***ce
element
/**
* concreteelement(具體元素)
* @author 七夜雪
* @create 2018-11-24 21:36
*/public
class
concreteelementa
implements
element
@override
public
void
accept
(visitor visitor)
public string getname()
}
/**
* concreteelement(具體元素)
* @author 七夜雪
* @create 2018-11-24 21:37
*/public
class
concreteelementb
implements
element
@override
public
void
accept
(visitor visitor)
public string getname()
public string getnickname()
}
/**
* 訪問者介面
* visitor(訪問者)角色
* @author 七夜雪
* @create 2018-11-24 21:29
*/public
inte***ce
visitor
/**
* concretevisitor(具體訪問者) 角色
* @author 七夜雪
* @create 2018-11-24 21:37
*/public
class
concretevisitor
implements
visitor
@override
public
void
visit
(concreteelementb element)
}
測試** :
/**
* 測試類
* * @author 七夜雪
* @create 2018-11-24 21:48
*/public
class
client
}}
本文參考:慕課網 Java設計模式之訪問者模式 Visitor 實踐
訪問者模式定義 主要將資料結構與資料操作分離。需要處理穩定的資料結構和易變的操作耦合問題,此時可以使用訪問者模式。以下 演示訪問者模式簡單的實際運用 定義乙個介面gohome package com.ldl.cn.visitormodel public inte ce gohome定義乙個類goho...
設計模式 訪問者模式
訪問者模式是一種資料操作與資料結構分離的設計模式,訪問者模式的基本想法是,軟體系統中擁有乙個由許多物件構成的 比較穩定的物件結構,這些物件的類都擁有乙個accept方法用來接受訪問者物件的訪問。訪問者是乙個介面,它擁有乙個visit方法,這個方法對訪問到的物件結構中不同型別的元素作出不同的處理。在物...
設計模式 訪問者模式
訪問者模式 visitor 表示乙個作用於某物件結構中的各元素的操作。它使你可以在不改變各元素的類的前提下定義作用於這些元素的新操作。例子 男人和女人在不同的狀態下會有不同反應,採用訪問者模式,可以增加狀態很方便 抽象狀態類 class action 男人反應 virtual void getwom...