設計模式 訪問者模式(Visitor)

2022-04-03 21:30:53 字數 1970 閱讀 3366

定  義:表示作用於某物件結構中的各元素的操作。它使你可以在不改變各元素的類的前提下定義作用於這些元素的新操作。

結構圖:

示例:

、狀態類:

//

狀態的抽象類

abstract

class

action

//成功 狀態

class

success : action

時,多半有個偉大的女人

", concreteelementa.gettype().name, this

.gettype().name);

}public

override

void

getwomanconclusion(woman concreteelementb)

時,肯定有個不成功的男人

", concreteelementb.gettype().name, this

.gettype().name);}}

//失敗 狀態

class

failing : action

時,悶頭喝酒,誰也不用勸

", concreteelementa.gettype().name, this

.gettype().name);

}public

override

void

getwomanconclusion(woman concreteelementb)

時,眼淚汪汪,誰也勸不了

", concreteelementb.gettype().name, this

.gettype().name);}}

view code

人,男人,女人:

//

"人"的抽象類

abstract

class

person1

//男人

class

man : person1

}//女人

class

woman : person1

}

view code

物件結構類:

//

物件結構

class

objectstructure

//移除

public

void

detach(person1 person)

//檢視顯示

public

void

display(action visitor)}}

view code

客戶端呼叫:

objectstructure o = new

objectstructure();

//物件結構中加入要對比的「男人」和「女人」

o.attach(new

man());

o.attach(

newwoman());

//成功時的反應

success v1 = new

success();

o.display(v1);

//失敗時的時的反應

failing v2 = new

failing();

o.display(v2);

//結婚時的反應

//marry v3 = new marry();

view code

結果:

Java設計模式之訪問者模式 Visitor 實踐

訪問者模式定義 主要將資料結構與資料操作分離。需要處理穩定的資料結構和易變的操作耦合問題,此時可以使用訪問者模式。以下 演示訪問者模式簡單的實際運用 定義乙個介面gohome package com.ldl.cn.visitormodel public inte ce gohome定義乙個類goho...

設計模式 訪問者模式

訪問者模式是一種資料操作與資料結構分離的設計模式,訪問者模式的基本想法是,軟體系統中擁有乙個由許多物件構成的 比較穩定的物件結構,這些物件的類都擁有乙個accept方法用來接受訪問者物件的訪問。訪問者是乙個介面,它擁有乙個visit方法,這個方法對訪問到的物件結構中不同型別的元素作出不同的處理。在物...

設計模式 訪問者模式

訪問者模式 visitor 表示乙個作用於某物件結構中的各元素的操作。它使你可以在不改變各元素的類的前提下定義作用於這些元素的新操作。例子 男人和女人在不同的狀態下會有不同反應,採用訪問者模式,可以增加狀態很方便 抽象狀態類 class action 男人反應 virtual void getwom...