設計模式命令
阿新 • • 發佈:2017-11-07
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 staticvoid main(String[] args) { Employee employee=new Employee(); Secretary secretary=new Secretary(employee); Boss boss=new Boss(secretary); boss.sendCommand(); } }
設計模式命令