設計模式 Delegate

2021-08-25 17:37:31 字數 1146 閱讀 6940

委派模式

在常用的23種設計模式中其實面沒有委派模式(delegate)的影子,但是在spring中委派模式確實用的比較多的一種模式,spring mvc框架中的dispatcherservlet其實就用到了委派模式,有前輩將其總結為**模式和策略模式的組合。下面通過乙個簡單的例項來總結委派模式

委派模式跟靜態**模式以及策略模式的區別?

委派模式:**人全權負責這一件事。如:老闆給專案經理安排任務,專案經理只是負責排程工作,真正幹活的是底下的開發人員。

靜態**模式:**人只是參與被**人一小部分的工作,最終的結論還是得由**人來決定。如:張三沒空找物件,媒婆幫張三物色到乙個物件,最終得看張三喜不喜歡這個物件。

策略模式:專案經理在分配任務的時候需要權衡,會產生多種分配方案,但是最終都是將手中的任務分配給底下的開發人員。

示例:

boss通過將任務發布給專案經理,體現靜態**,專案經理根據任務選擇相應的員工完成任務,體現策略模式。

1.建立委派介面:

public

inte***ce itarget

2.介面實現

public

class

targetb

implements

itarget

}

public

class

targeta

implements

itarget

}

3.委派類:

public

class leader

public

void

dispatch(string command)

}

4.測試:

public

class boss

}

設計模式 委派模式(Delegate)

不屬於23 種設計模式之一,是物件導向設計模式中常用的一種模式。這種模式的原理為類b和類a 是兩個互相沒有任何關係的類,b 具有和a 一模一樣的方法和屬性 並且呼叫b 中的方法,屬性就是呼叫a 中同名的方法和屬性。b好像就是乙個受a授權委託的中介。第三方的 不需要知道a 的存在,也不需要和a 發生直...

設計模式之裝飾設計模式 二 delegate

這次我為大家介紹裝飾設計模式中的delegate。一.什麼是delegate 從委託方法的實現來看,委託方法的實現是在另外乙個類中完成,即委託類的內部暴露了,與我們一般堅持的隱藏實現原則相違背。從委託類的定義可以看出,委託與協議有一定的相似性。都採用 protocol 關鍵字來宣告 並且其中的方法都...

委派模式(Delegate)

委派模式 delegate 是物件導向設計模式中常用的一種模式。這種模式的原理為類b和類a是兩個互相沒有任何關係的類,b具有和a一模一樣的方法和屬性 並且呼叫b中的方法,屬性就是呼叫a中同名的方法和屬性。b好像就是乙個受a授權委託的中介。第三方的 不需要知道a的存在,也不需要和a發生直接的聯絡,通過...