設計模式之——委派模式

委派模式(Delegate Pattern)的基本作用就是
負責任務的調用和分配,跟代理模式很像,可以看做是一種特殊情況下的靜態(tài)代理的全權代理,但是代理模式注重過程,而委派模式注重結果。

委派其實就是指點江山,叫別人干活,如果他收集結果,然后向領導匯報,例如以下這個很熟悉的場景:老板(Boss)給項目經理(Leader)下達任務,項目經理會根據實際情況給每個員工派發(fā)工作任務,待員工把工作任務完成之后,再由項目經理匯報工作進度和結果給老板。老板是不會關心是誰干了什么活,他只關心結果,到底是不是他滿意的

代碼實現

public interface IEmployee {
    public void doing(String command);
}

public class EmployeeA implements IEmployee {
    @Override
    public void doing(String command) {
        System.out.println("我是員工 A,我現在開始干" + command + "工作");
    }
}

public class Leader implements IEmployee {
    private Map<String,IEmployee> targets = new HashMap<String,IEmployee>();
    public Leader() {
        targets.put("注冊",new EmployeeA());
        targets.put("登錄",new EmployeeB());
    }
    //項目經理自己不干活
    public void doing(String command){
        targets.get(command).doing(command);
    }
}

public class Boss {
    public void command(String command,Leader leader){
        leader.doing(command);
    }
}

//測試
public class DelegateTest {
    public static void main(String[] args) {
        //客戶請求(Boss)、委派者(Leader)、被被委派者(Target)
        //
        //
        //
        //
        //
        new Boss().command("登錄",new Leader());
    }
}

總結

1.委派者要持有被委派者的引用
2.策略模式注重是可擴展(外部擴展),委派模式注重內部的靈活和復用
3.代理模式注重的是過程, 委派模式注重的是結果
4.委派的核心:就是分發(fā)、調度、派遣
5.委派模式:就是靜態(tài)代理和策略模式一種特殊的組合

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 什么是委派模式 這里我以一個簡單的例子來形容,公司有大boss和部門leader以及部門里的員工,現在大boss給...
    Hansn閱讀 1,130評論 4 6
  • 今天想要分享的是設計模式中的委派模式,說他是設計模式,但并不是23種設計模式之中的。 委派模式(Delegate)...
    先生zeng閱讀 1,499評論 0 1
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,675評論 1 32
  • 項目安全管理 只要有生產就會有不安全的因素,就會有防止危害、保護勞動者安全的要求。 安全管理是項目施工管理的重要組...
    甲坤閱讀 1,807評論 0 17
  • 首先要澄清對于創(chuàng)造力的概念。如果將創(chuàng)造力界定為一種能力,那我們可以把創(chuàng)造力定義為“個體或者群體產生新穎而有價值的產...
    智天Skylor閱讀 1,291評論 0 0

友情鏈接更多精彩內容