設計模式之Visitor模式(筆記)

2021-09-07 13:19:00 字數 1425 閱讀 3274

訪問者模式:表示乙個作用於某個物件結構中的各元素操作。它使你能夠不改變各元素的類的前提下定義作用於這些元素的新操作。

首先定義乙個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...