訪問者設計模式:
##被訪問者:
有一些穩定的結構物件,提供accept方法供訪問者進行訪問
##訪問者:
一些訪問者,有乙個visitor方法實現對物件的訪問,不同的物件會做出不同的反應!
##應用
公司年終獎考核:
被訪問者有:程式設計師,產品經理(accept(visitor))
訪問者:ceo,cto(visit(…))
ceo可能只會關注kpi,cto可能只會關注程式設計師的kpi+**量,產品經理的kpi+產品數量
不同訪問物件對被訪問物件的訪問可能產生不同的結果!
##實現
`public inte***ce visitor
@override
public void visit(engineer engineer)
public class ctovisitor implements visitor
@override
public void visit(engineer engineer)
public abstract class staff
public void setkpi(string kpi)
protected abstract void accept(visitor visitor);public class engineer extends staff
public int getcodeline()
@override
protected void accept(visitor visitor) public class manager extends staff
public int getproducts()
@override
protected void accept(visitor visitor) public class businessreport
public void showreport(visitor visitor)
public void visitall()
}
public class test ##類結構圖
設計模式 訪問者
我們去銀行櫃檯辦業務,一般情況下會開幾個個人業務櫃檯的,你去其中任何乙個櫃檯辦理都是可以的。我們的訪問者模式可以很好付諸在這個場景中 對於銀行櫃檯來說,他們是不用變化的,就是說今天和明天提供個人業務的櫃檯是不需要有變化的。而我們作為訪問者,今天來銀行可能是取消費流水,明天來銀行可能是去辦理手機銀行業...
設計模式 訪問者模式
訪問者模式是一種資料操作與資料結構分離的設計模式,訪問者模式的基本想法是,軟體系統中擁有乙個由許多物件構成的 比較穩定的物件結構,這些物件的類都擁有乙個accept方法用來接受訪問者物件的訪問。訪問者是乙個介面,它擁有乙個visit方法,這個方法對訪問到的物件結構中不同型別的元素作出不同的處理。在物...
設計模式 訪問者模式
訪問者模式 visitor 表示乙個作用於某物件結構中的各元素的操作。它使你可以在不改變各元素的類的前提下定義作用於這些元素的新操作。例子 男人和女人在不同的狀態下會有不同反應,採用訪問者模式,可以增加狀態很方便 抽象狀態類 class action 男人反應 virtual void getwom...