設計模式之訪問者模式

2021-10-03 23:23:55 字數 1848 閱讀 7722

學習設計模式的日常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 ...