天天看點

Linux下的設計模式——委派模式(Delegate Pattern)深入淺出【建議新手收藏】

前言:學習目标:精簡程式邏輯,提升代碼的可讀性。内容定位:希望通過對委派模式的學習,讓自己寫出更加優雅的代碼的人群。

委派模式(Delegate Pattern)的基本作用是負責任務的排程和配置設定任務,跟代理模式很像,可以看作是一種特殊情況下的靜态代理的全權代理,但是代理模式注重過程,而委派模式注重結果。

不屬于GOF 23中設計模式之一

屬于行為型模式

DispatcherServlet

類名以Delegate結尾的

包含Dispatcher的一般都是委派模式

Spring架構IOC中的BeanDefinitionParserDelegate:Spring提供多種方式(java、xml、注解)配置bean,該類負責分發處理,注入的bean資訊最終會被加載為一個BeanDefition對象(描述對象資訊)

應用場景:解決多任務,又不希望把這些任務或者具體的實作讓使用者知道(不讓使用者直接互動),建立一個中間類,實作全權代理,達到對使用者來說隻有一個入口的目的。

例子:老闆需要安排任務給員工,但是又不能直接讓老闆去了解每個員工的擅長職能,就可以建立一個中間的經理職位負責了解職員的特長,分發任務。

boss類

經理類

員工接口

員工A

員工B

測試類

DispatcherServlet是前端控制器委派模式的實作,提供Spring Web MVC的集中通路點,負責職責的分派

web.xml

MemberController

OrderController

SystemController

Linux下的設計模式——委派模式(Delegate Pattern)深入淺出【建議新手收藏】