在軟體系統中,「行為請求者」與「行為實現者」通常呈現一種「緊耦合」。將一組行為抽象為物件,實現二者之間的松耦合。從上面的描述中,我們可以看出,命令模式解決的是請求和實現緊耦合的問題。
我們模擬乙個早上起床、刷牙的場景。
public inte***ce command
public abstract class receiverimplements command
public class getupreceiver extends receiver
@override
public string execute()
}
public class brushreceiver extends receiver
@override
public string execute()
}
public class getupcommand implements command
@override
public string execute()
}public class brushcommand implements command
@override
public string execute()
}
public class invoker
public void executecommand()
}}
public class client
}
一般包含3個角色
command:命令抽象介面
receiver:命令接收者
invoker:請求者,組裝命令
命令模式與與策略模式的區別
策略模式強調的是達成同一目標的不同實現,比如去上班,有多種路線,但最終的目的是上班。
命令模式強調的是做不同的事情,隱藏不同的實現,比如起床、刷牙、上班等。
設計模式之命令設計模式
先來看一下命令模式的類圖 乍一看好像類很多,其實我們逐個分析他們。類圖中存在的類可以分為 invoker icommand conceretecommand receiver invoker類 上層直接調取invoker類 icommand 是對命令的抽象 conceretecommand 是命令的...
設計模式之命令模式
command pattern 將請求封裝成物件,這可以讓你使用不同的請求,佇列,或者是日誌請求來引數化其他物件,命令模式也可以支援撤銷操作。命令模式有兩種實現方式 1.在命令管理器中提供設定當前命令接受者的方法,當執行訊息或者是有訊息壓入的時候直接將命令傳送給當前設定的接受者。2.在命令管理器中建...
設計模式之命令模式
當我們有一台多功能的印表機,然後通過電腦直接進行任務,如圖 如果通過這樣的設計直接去呼叫多功能一體機的功能,就會存在此時此刻只能進行乙個任務,不允許有多個客戶端同時操作.那麼現在我們就需要考慮一種新的設計模式,叫做命令設計模式。命令設計模式 將乙個請求封裝為乙個物件,從而使你可用不同的請求對客戶進行...