Java设计模式——委派模式

委派模式有点像代理模式又有点像策略模式。

例如:公司老板给项目经理下达任务,将任务全权交给项目经理,由项目经理根据一定的策略将任务分配给小组成员,项目经理从头跟到尾。项目经理就像一个受老板授权的中介,老板不需要和小组成员直接联系,甚至可以不知道他的存在。

我们员工实现同一个干活的接口

public interface ITarget {
    public void doSomething(String command);
}

员工A和员工B(真正做事的人)做自己擅长的工作

public class TargetA implements ITarget {
    @Override
    public void doSomething(String command) {
        System.out.println("我是员工A,现在开始干" + command + "");
    }
}
public class TargetB implements ITarget {
    @Override
    public void doSomething(String command) {
        System.out.println("我是员工B,现在开始干" + command + "");
    }
}

项目经理持有所有的小组成员,根据一定的策略选择干活的人

public class Leader implements ITarget {

    private Map<String, ITarget> targets = new HashMap<>();

    /**
     * 项目经理持有小组成员可供选择,类似策略模式
     */
    public Leader() {
        targets.put("加密", new TargetA());
        targets.put("登录", new TargetB());
    }

    public void doSomething(String command) {
        targets.get(command).doSomething(command);
    }
}

领导下达命令

public class Boss {
    public static void main(String[] args) {
        new Leader().doSomething("登录");
    }
}

从上面可以看出来委派模式就是静态代理和策略模式的一种特殊组合,
代理模式注重的是过程,委派模式注重的是结果。策略模式注重的是可扩展(外部扩展),
委派模式注重的是内部的灵活和复用。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 如今发现写500字的作业真是不怎么费吹灰之力。 要说是进步吧,也不一定。因为从前把500字量得过重,迟迟不肯下笔,...
    冷眼鲁娜阅读 1,819评论 1 0
  • 5月30日, 多云 时光如逝,转眼间,小宝已经有两个多月了,因为大宝出生后我还在部队呆了两年多,所以多多少少有些遗...
    浮尘l阅读 1,499评论 0 1
  • iOS11体验感受 优点 前几天为了体验ARKit在苹果开发者网站下载了iOS11beta2版本,体验了几天,感觉...
    cmfish阅读 1,733评论 1 3
  • 有时候,时常的想着 倘若将一段光阴,只默默托付给一个人 是桩多么,多么欣喜,而值得庆幸的事 那份期许,好像温润天空...
    王芊骅阅读 2,299评论 0 0
  • 必看,必看,必看。 Sir已经念叨这句一个月了。 终于等来了它。 看完后,Sir还想补一句: 电影院见,电影院见,...
    Sir电影阅读 5,916评论 5 35

友情链接更多精彩内容