设计模式命令

命令模式


设计原则:遵循迪米特、开闭原则
常用场景:行为的请求者与行为的处理者耦合度过高
使用概率: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();
    }
}
原文地址:https://www.cnblogs.com/zhaojj/p/7798424.html