设计模式命令
命令模式
设计原则:遵循迪米特、开闭原则
常用场景:行为的请求者与行为的处理者耦合度过高
使用概率:20%
复杂度:中高
变化点:命令的种类
选择关键点:请求者是否不需要关心命令的执行只知道接受者
逆鳞:命令的种类无限制增长
相关设计模式
职责链模式:容易将二者关联在一起的原因是,二者都是为了处理请求或者命令而存在的,而且二者都是为了将请求者与响应者解耦,
不同的是命令模式中,客户端需要知道一个命令的接受者,在创建命令的时候就把接受者与命令绑定在一起发送给调用者,
而职责链模式中,客户端并不关心最终处理请求的对象是谁,客户端只是封装一个请求对象,随后交给职责链的头部而已,也正因为这样,二者的实现方式,有着很大的区别
主要思想:
代码就是让指定类去调用另一个类的指定方法
相当于老板告诉秘书叫某个人过来,秘书就告诉某人 老板就你你过来下
老板就是命令发出者,秘书就是调用者,某人就是命令接收者,这里老板就告诉了秘书接受者和命令
//员工接收者 public class Employee { public void execute(){ System.out.println("接收命令并执行"); } } //秘书调度者 这里的命令可以多种,接收者也可以多种 public class Secretary { private Employee employee; public Secretary(Employee employee) { this.employee=employee; } public void execute(){ this.employee.execute(); } } //老板 命令发出着 也可以发各种命令 public class Boss { private Secretary secretary; public Boss(Secretary secretary) { this.secretary = secretary; } public void sendCommand() { this.secretary.execute(); } } public class Test { public static void main(String[] args) { Employee employee=new Employee(); Secretary secretary=new Secretary(employee); Boss boss=new Boss(secretary); boss.sendCommand(); } }