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("登录");
    }
}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值