學習設計模式的日常demo訪問者模式基本介紹
訪問者模式原理類圖
訪問者模式案例
**實現:
// 定義抽象的評委類
// 即抽象的訪問者類
public
abstract
class
abstractperson
// 提供方法,讓具體訪問者實現
public
abstract
void
accept
(abstractaction action)
;public string getname()
}// 定義具體的抽象評委類的子類
// 即具體的訪問者
// 這裡使用到了雙分派,即在客戶端中,將具體狀態引數傳遞man中(第一次分派)
// 然後在man類中呼叫getmanresult(this);將自己作為引數傳入,完成第二次分派
public
class
manextends
abstractperson
@override
public
void
accept
(abstractaction action)
}public
class
woman
extends
abstractperson
@override
public
void
accept
(abstractaction action)
}// 定義抽象的評委評審行為
// 即抽象的訪問者行為
public
abstract
class
abstractaction
// 定義抽象評審行為的具體子類
// 即訪問者的具體行為
public
class
pass
extends
abstractaction
}public
class
outextends
abstractaction
}// 定義訪問者模式的核心資料結構
// 該資料結構管理訪問者,並可呼叫訪問者的行為
public
class
objectstructure
// 移除
public
void
detach
(abstractperson person)
// 顯示測評情況:將某個行為傳遞給集合中的所有person
public
void
display
(abstractaction action)}}
// 測試類
命令模式注意事項和細節說明
github:設計模式源**
設計模式之訪問者模式
先看一下下面這段 class person public string getaction public void setaction string action public void getconclusion else if action exciting else if action gri...
設計模式之訪問者模式
我們去銀行櫃檯辦業務,一般情況下會開幾個個人業務櫃檯的,你去其中任何乙個櫃檯辦理都是可以的。我們的訪問者模式可以很好付諸在這個場景中 對於銀行櫃檯來說,他們是不用變化的,就是說今天和明天提供個人業務的櫃檯是不需要有變化的。而我們作為訪問者,今天來銀行可能是取消費流水,明天來銀行可能是去辦理手機銀行業...
設計模式之訪問者模式
定義 表示一介作用於某個物件結構中的各元素的操作。它使你可以在不改變各元素的類的前提下定義作用於這些元素的新操作。結構圖 示例 public inte ce vistor public class concretevisitor1 implements vistor override public ...