1. 程式人生 > >設計模式命令

設計模式命令

system 調度 有著 行為 關聯 老板 this sta new

命令模式


設計原則:遵循迪米特、開閉原則
常用場景:行為的請求者與行為的處理者耦合度過高
使用概率: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(); } }

設計模式命令