一句话总结
干活是你的(普通员工),功劳算我的(项目经理)
内容
不是23中设计模式的一种,是静态代理和策略模式的一种特殊的组合。
场景
项目经理派发任务,Dispatcher分发
由3个角色组成:客户请求(Boss),委派者(Leader),被委派者(Target)
项目经理:是Boss和员工之间的中介,和静态代理的区别是项目经理是全权代理,而代理是代理人在目标对象之前或之后做些事情,真正做决定的是目标对象。
项目经理:分配任务时需要根据做选择,即根据每个员工的特点来选择做什么功能,是策略模式。
url类图
代码实现
public interface ITarget {
public void doing(String command);
}
public class TargetA implements ITarget {
@Override
public void doing(String command) {
System.out.println("我是员工A,我现在开始干" + command + "工作");
}
}
public class TargetB implements ITarget {
@Override
public void doing(String command) {
System.out.println("我是员工B,我现在开始干" + command + "工作");
}
}
public class Leader implements ITarget {
private Map<String,ITarget> targets = new HashMap<String,ITarget>();
public Leader() {
targets.put("加密",new TargetA());
targets.put("登录",new TargetB());
}
//项目经理自己不干活
public void doing(String command){
targets.get(command).doing(command);
}
}
public class Boss {
public static void main(String[] args) {
new Leader().doing("登录");
}
}
输出结果