委派模式- 2019-10-10 20:40- 设计模式: 设计模式,委派模式
委派模式就是 静态代理模式+策略模式 的一种特殊模式 spring中以Delegate结尾的都是委派模式 委派对象持有被委派对象的引用
demo
模拟老板下达命令给经理,经理再通过命令调动相应的人执行
/*** 员工** @author Bai* @date 2020/12/2 23:04*/public interface Employee {/*** 根据命令做事** @param command*/void doing(String command);}
/*** 员工A** @author Bai* @date 2020/12/2 23:08*/public class EmployeeA implements Employee {@Overridepublic void doing(String command) {System.out.println("员工A执行" + command + "命令,开始干活了");}}
/*** @author Bai* @date 2020/12/2 23:09*/public class EmployeeB implements Employee {@Overridepublic void doing(String command) {System.out.println("员工B执行" + command + "命令,开始干活了");}}
/*** 经理 委派对象** @author Bai* @date 2020/12/2 23:09*/public class Leader implements Employee {/*** 命令:员工(静态模式的体现)*/private static Map<String, Employee> employeeMap = new HashMap<>();{employeeMap.put("搬砖", new EmployeeA());employeeMap.put("扫地", new EmployeeB());}/*** 根据命令委派** @param command*/@Overridepublic void doing(String command) {employeeMap.get(command).doing(command);}}
/*** @author Bai* @date 2020/12/2 23:13*/public class Boss {/*** 老板下命令 ,经理接收 并委派下去** @param command* @param leader*/public static void command(String command, Leader leader) {leader.doing(command);}}
@Testpublic void demo() {Leader leader = new Leader();//策略模式的体现Boss.command("搬砖", leader);Boss.command("扫地", leader);}
**
