委派模式(Delegate)

2021-09-12 10:49:44 字數 2826 閱讀 3896

委派模式不屬於 23 種設計模式之一, 是物件導向設計模式中常用的一種模式。

這種模式的原理為類 b和類 a 是兩個互相沒有任何關係的類, b 具有和 a 一模一樣的方法和屬性; 並且呼叫 b 中的方法,就是呼叫 a 中同名的方法和屬性。 b 好像就是乙個受 a 授權委託的中介。 第三方的**不需要知道 a 的存在, 也不需要和 a 發生直接的聯絡, 通過 b 就可以直接使用 a 的功能, 這樣既能夠使用到 a 的各種功能, 又能夠很好的將 a 保護起來了, 一舉兩得。

平時工作中的場景就用到了委派模式。

專案經理是boss和員工之間的乙個中介。

專案經理:在老闆眼裡,他負責幹活,實際上只負責類似於排程的工作,分配任務。

重要特徵:專案經理分配任務之前,他要做乙個權衡(選擇),類似於策略模式。

針對上述場景寫段小**:

客戶請求(boss)、委派者(leader)、被被委派者(target)

老闆類

//老闆下達命令:"登陸!"給專案經理。

public

class

boss

}

工作人員介面

public

inte***ce

itarget

專案經理類

public

class

leader

implements

itarget

//專案經理自己不幹活

public

void

doing

(string command)

}

員工a

public

class

targeta

implements

itarget

}

員工b

public

class

targetb

implements

itarget

}

執行結果如下:

spring中用到了很多委派模式,下面我們就來說受最常見的servletdispatcher。源**這裡暫時先不上,會在spring原始碼分析中再研究。先看思路。

大家是否還記得這樣的寫法?

aaa<

/servlet-name>

class

>com.gupaoedu.***servlet<

/servlet-

class

>

<

/servlet>

aaa<

/servlet-name>

/web/***.

do<

/servlet-url>

<

/servlet-pattern>

是的,在使用servletdispatcher之前,我們是通過web.xml使得每個url對對應乙個serlvet(url由瀏覽器輸入)。

模擬servletdispatcher類

}//4、將具體的任務分發給method(通過反射去呼叫其對應的方法)

object object = null;

trycatch

(illegalacces***ception e)

catch

(invocationtargetexception e)

//5、獲取到method執行的結果,通過response返回出去

// response.getwriter().write();

}//此內部類相當於實體類handler

class

handler

public handler setcontroller

(object controller)

public method getmethod()

public handler setmethod

(method method)

public string geturl()

public handler seturl

(string url)

}}memberaction類,相當於controller控制層中的類。

public

class

memberaction

}

委派模式(Delegate)

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

設計模式 委派模式(Delegate)

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

設計模式 委派模式

1.簡介 角色 受託人,委託人 社會上是平等關係 公司裡面 普通員工,專案經理 各自職責不一樣 專案經理 委託人 主要職責是安排任務 普通員工 受託人 執行任務 2.特點 a 類似與中介的功能 委託機制 b 持有被委託人的引用 c 不關心過程,只關心結果 可以分發給不同員工執行,結果可能不同 d 幹...