您現在的位置是:首頁 > 人文

命令模式是什麼意思

由 帆帆七聊教育 發表于 人文2023-01-17
簡介而命令模式則是對動作的解耦,把一個動作的執行分為執行物件(接收者角色)、執行行為(命令角色),讓兩者相互獨立而不相互影響iOS設計模式之命令模式:命令模式(Command),將一個請求封裝為一個物件,從而使你可用不同的請求對客戶端進行引數化

命令表示什麼意思

在面向物件程式設計的範疇中,命令模式(Command Pattern)是一種設計模式,它嘗試以物件來代表實際行動。

命令模式是什麼意思

在軟體系統中,“行為請求者”與“行為實現者”通常呈現一種“緊耦合”。但在某些場合,比如要對行為進行“記錄、撤銷/重做、事務”等處理,這種無法抵禦變化的緊耦合是不合適的。在這種情況下,如何將“行為請求者”與“行為實現者”解耦?將一組行為抽象為物件,實現二者之間的松耦合。這就是命令模式(Command Pattern)。

命令模式是什麼意思

命令模式分析:

1。命令模式的本質是對命令進行封裝,將發出命令的責任和執行命令的責任分割開。

2。每一個命令都是一個操作:請求的一方發出請求,要求執行一個操作;接收的一方收到請求,並執行操作。

3。命令模式允許請求的一方和接收的一方獨立開來,使得請求的一方不必知道接收請求的一方的介面,更不必知道請求是怎麼被接收,以及操作是否被執行、何時被執行,以及是怎麼被執行的。

4。命令模式使請求本身成為一個物件,這個物件和其他物件一樣可以被儲存和傳遞。

5。命令模式的關鍵在於引入了抽象命令介面,且傳送者針對抽象命令介面程式設計,只有實現了抽象命令介面的具體命令才能與接收者相關聯。

命令模式是什麼意思

命令模式缺點:使用命令模式可能會導致某些系統有過多的具體命令類。因為針對每一個命令都需要設計一個具體命令類,因此某些系統可能需要大量具體命令類,這將影響命令模式的使用。

命令模式的定義:命令是對命令的封裝,每一個命令都是一個操作,請求方發出請求,接收方接收請求,並執行操作。命令模式解耦了請求方和接收方,命令模式屬於行為型模式

命令模式和策略模式確實很相似,只是命令模式多了一個接收者(Receiver)角色。它們雖然同為行為類模式,但是兩者的區別還是很明顯的。策略模式的意圖是封裝演算法,它認為“演算法”已經是一個完整的、不可拆分的原子業務(注意這裡是原子業務,而不是原子物件),即其意圖是讓這些演算法獨立,並且可以相互替換,讓行為的變化獨立於擁有行為的客戶;而命令模式則是對動作的解耦,把一個動作的執行分為執行物件(接收者角色)、執行行為(命令角色),讓兩者相互獨立而不相互影響

iOS設計模式之命令模式:命令模式(Command),將一個請求封裝為一個物件,從而使你可用不同的請求對客戶端進行引數化;對請求佇列或記錄請求日誌,以及支援客可撤離的操作。蘋果的Target-Action呼叫機制已經實現了命令模式。NSInvocation包含一個target物件,一個方法和一些引數。這個物件可以按需要動態修改。這是一個非常好的命令模式的例子。減少物件和接收物件之間的操作,直接寫成一個請求或請求鏈。

推薦文章