將「請求」封裝成物件,以便使用不同的請求,佇列或者日誌來引數化其他物件。命令模式用於方法呼叫類和方法實現類之間的解耦。在呼叫某個方法的時候不直接通過實現類呼叫,而是通過呼叫具體命令類的方法,在具體命令類的方法裡面呼叫實現類的方法。其實就是通過加入第三者(命令類)來實現呼叫者和執行者之間的解耦。
命令模式可以簡單的看成是方法的呼叫,我們只要希望呼叫者和方法類松耦合,就可以使用命令模式。
我們現在有個畫圖的工具類,裡面有畫圓的方法和畫方形的方法,有個畫板類需要呼叫這兩個方法。
//畫圖工具類
public
class
paintutils
public
void
drawsquare()
}//畫圖命令介面
public
inte***ce
ipaintcommand
//畫圓的命令類
public
class
drawcirclecommand
implements
ipaintcommand
}//畫方形的命令類
public
class
drawsquarecommand
implements
ipaintcommand
}//畫板類
public
class
sketchpad
}//測試類
public
class
test
}
設計模式之命令模式學習理解
命令模式 command pattern 是一種資料驅動的設計模式,它屬於行為型模式。請求以命令的形式包裹在物件中,並傳給呼叫物件。呼叫物件尋找可以處理該命令的合適的物件,並把該命令傳給相應的物件,該物件執行命令。意圖 將乙個請求封裝成乙個物件,從而使您可以用不同的請求對客戶進行引數化。主要解決 在...
設計模式之命令設計模式
先來看一下命令模式的類圖 乍一看好像類很多,其實我們逐個分析他們。類圖中存在的類可以分為 invoker icommand conceretecommand receiver invoker類 上層直接調取invoker類 icommand 是對命令的抽象 conceretecommand 是命令的...
設計模式之命令模式
command pattern 將請求封裝成物件,這可以讓你使用不同的請求,佇列,或者是日誌請求來引數化其他物件,命令模式也可以支援撤銷操作。命令模式有兩種實現方式 1.在命令管理器中提供設定當前命令接受者的方法,當執行訊息或者是有訊息壓入的時候直接將命令傳送給當前設定的接受者。2.在命令管理器中建...