訪問者模式:表示乙個作用於某個物件結構中的各元素操作。它使你能夠不改變各元素的類的前提下定義作用於這些元素的新操作。
首先定義乙個visitor抽象類,為每乙個詳細類宣告乙個visit操作
public
abstract
class visitor
接著定義繼承visitor的詳細類
public
class
concretevisitor1
extends
visitor
@override
public
void
visitconcreteelementb(concreteelementb elementb)
}public
class
concretevisitor2
extends
visitor
@override
public
void
visitconcreteelementb(concreteelementb elementb)
}
然後定義乙個element抽象類,定義乙個accept方法
public
abstract
class element
接著定義繼承element的詳細類
public
class
concreteelementa
extends
element
public
void
operationa()
}public
class
concreteelementb
extends
element
public
void
operationb()
}
然後定義乙個objectstructure類,用來列舉它的元素
public
class objectstructure
public
void
detach(element element)
public
void
accept(visitor visitor)}}
client**
public
static
void
main(string args)
Visitor設計模式
物件導向系統的開發和設計過程,經常會遇到一種情況就是需求變更 requirement changing 經常做好的乙個設計 實現了乙個系統原型,客戶又會有了新的需求。因此不得不去修改已有的設計,最常見就是解決方案就是給已經設計 實現好的類新增新的方法去實現客戶新的需求,這樣就陷入了設計變更的夢魘 不...
設計模式之Visitor 訪問者模式
color red b visitor 訪問者模式 b color 訪問者 package com.dzeay.pattern.visitor public inte ce visitor 具體訪問者 package com.dzeay.pattern.visitor public class co...
設計模式之訪問者模式(visitor)
在訪問者模式 visitor pattern 中,我們使用了乙個訪問者類,它改變了元素類的執行演算法。通過這種方式,元素的執行演算法可以隨著訪問者改變而改變。這種型別的設計模式屬於行為型模式。根據模式,元素物件已接受訪問者物件,這樣訪問者物件就可以處理元素物件上的操作。優點 1 符合單一職責原則。2...