導讀
在spring中委派模式用的比較多,在常用的23種設計模式中其實是沒有委派模式的影子的,
在spring中體現:Spring MVC框架中的DispatcherServlet其實就用到了委派模式,
委派模式的作用:基本作用就是負責任務的呼叫和分配,跟代理模式很像,可以看做是一種特殊情況下的靜態代理的全權代理,但是代理模式注重程序,而委派模式注重結果,
Example
利用一張圖簡述委派模式,下圖簡單說明了老板把任務給了專案經理,而專案經理將任務拆分,分給一個個it攻城獅,自己沒有做作業,而是把具體作業交給具體的執行者去做,

代碼示例
介面:IExcuter.java
public interface IExcuter { void excute(String command); }
攻城獅A:ExcuterA.java
public class ExcuterA implements IExcuter{ @Override public void excute(String command) { System.out.println("員工A 開始做"+command+"的作業"); } }
攻城獅B:ExcuterB.java
public class ExcuterB implements IExcuter{ @Override public void excute(String command) { System.out.println("員工B 開始做"+command+"的作業"); } }
專案經理(委派者):Leader.java
public class Leader implements IExcuter { private Map<String,IExcuter> targets = new HashMap<String,IExcuter>(); public Leader() { targets.put("加密",new ExcuterA()); targets.put("登錄",new ExcuterB()); } @Override public void excute(String command) { targets.get(command).excute(command); } }
老板:Boss.java
public class Boss { public static void main(String[] args) { Leader leader = new Leader(); //看上去好像是我們的專案經理在干活 //但實際干活的人是普通員工 //這就是典型,干活是我的,功勞是你的 leader.excute("登錄"); leader.excute("加密"); } }
實作

參考:https://www.jianshu.com/p/38acf37b1e1f
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/32498.html
標籤:設計模式
下一篇:抽象工廠模式
