Aha!設計模式 78 命令模式 3

2021-09-22 16:40:13 字數 699 閱讀 5487

結構

參與者

協作

• client建立乙個concretecommand物件並指定它的receiver物件。

• 某invoker物件接收該concretecommand物件。

• invoker呼叫concretecommand物件的執行操作。

•concretecommand物件呼叫receiver的一些操作以執行請求。

效果

1)command模式可以將決定動作內容和執行動作分離,使二者可以在不同的時間和空間中進行。

2)通過擴充套件command類的派生類,可以在不影響invoker的情況下修改invoker的動作。 

3)可以使用簡單命令進行組合成為乙個復合命令。

4)增加新的command對client造成的負擔也很小。

一句話,command命令模式使選擇處理的內容和決定處理的物件以及執行這個處理這三個動作可以分別進行。

注:文中類圖來自《設計模式》一書。

Aha!設計模式 3 抽象工廠 2

動機 設計模式 引言中對於動機的說明如下 用以說明乙個設計問題以及如何用模式中的類 物件來解決該問題的特定情景。該情景會幫助你理解隨後對模式更抽象的描述。簡單地說 就是設計模式的應用例項。回到抽象工廠模式的動機。考慮乙個支援多種視感 look and feel 標準的使用者介面工具包,例如 moti...

Aha!設計模式 37 單例 3

效果 singleton模式有許多優點 1 對唯一例項的受控訪問 因為singleton類封裝它的唯一例項,所以它可以嚴格的控制客戶怎樣以及何時訪問它。對於資料的訪問控制,一般都要解決哪個資料,什麼時候被訪問的問題。這兩個問題中,那個資料的問題更加重要。單例模式保證只有乙個可供使用的例項,剩下的監控...

Aha!設計模式 91 中介者模式 3)

結構 中介者模式的想法是當多個物件為了同乙個目的需要相互協作時,指定乙個中介物件作為業務的中樞,以降低各個物件之間的耦合程度,其結構如下 參與者 mediator 抽象中介者類 中介者類mediator可以定義介面用於與各同事 colleague 物件之間通訊。之所以說是可以,是因為定義乙個對將來也...