您現在的位置是:首頁 > 人文
命令模式是什麼意思
命令表示什麼意思
在面向物件程式設計的範疇中,命令模式(Command Pattern)是一種設計模式,它嘗試以物件來代表實際行動。
在軟體系統中,“行為請求者”與“行為實現者”通常呈現一種“緊耦合”。但在某些場合,比如要對行為進行“記錄、撤銷/重做、事務”等處理,這種無法抵禦變化的緊耦合是不合適的。在這種情況下,如何將“行為請求者”與“行為實現者”解耦?將一組行為抽象為物件,實現二者之間的松耦合。這就是命令模式(Command Pattern)。
命令模式分析:
1。命令模式的本質是對命令進行封裝,將發出命令的責任和執行命令的責任分割開。
2。每一個命令都是一個操作:請求的一方發出請求,要求執行一個操作;接收的一方收到請求,並執行操作。
3。命令模式允許請求的一方和接收的一方獨立開來,使得請求的一方不必知道接收請求的一方的介面,更不必知道請求是怎麼被接收,以及操作是否被執行、何時被執行,以及是怎麼被執行的。
4。命令模式使請求本身成為一個物件,這個物件和其他物件一樣可以被儲存和傳遞。
5。命令模式的關鍵在於引入了抽象命令介面,且傳送者針對抽象命令介面程式設計,只有實現了抽象命令介面的具體命令才能與接收者相關聯。
命令模式缺點:使用命令模式可能會導致某些系統有過多的具體命令類。因為針對每一個命令都需要設計一個具體命令類,因此某些系統可能需要大量具體命令類,這將影響命令模式的使用。
命令模式的定義:命令是對命令的封裝,每一個命令都是一個操作,請求方發出請求,接收方接收請求,並執行操作。命令模式解耦了請求方和接收方,命令模式屬於行為型模式
命令模式和策略模式確實很相似,只是命令模式多了一個接收者(Receiver)角色。它們雖然同為行為類模式,但是兩者的區別還是很明顯的。策略模式的意圖是封裝演算法,它認為“演算法”已經是一個完整的、不可拆分的原子業務(注意這裡是原子業務,而不是原子物件),即其意圖是讓這些演算法獨立,並且可以相互替換,讓行為的變化獨立於擁有行為的客戶;而命令模式則是對動作的解耦,把一個動作的執行分為執行物件(接收者角色)、執行行為(命令角色),讓兩者相互獨立而不相互影響
iOS設計模式之命令模式:命令模式(Command),將一個請求封裝為一個物件,從而使你可用不同的請求對客戶端進行引數化;對請求佇列或記錄請求日誌,以及支援客可撤離的操作。蘋果的Target-Action呼叫機制已經實現了命令模式。NSInvocation包含一個target物件,一個方法和一些引數。這個物件可以按需要動態修改。這是一個非常好的命令模式的例子。減少物件和接收物件之間的操作,直接寫成一個請求或請求鏈。
推薦文章
- 故事:病嬌前男友成了連環殺人犯,他殘忍殺害數人竟是為逼我見他
白祁回憶說,他的確綁架了一些人沒有立即殺死,但無論我們使用何種手段,他都不願意將那個女孩兒的下落講出來...
- 四川這個尚未開發的秘境,當地人說可媲美九寨溝,門票還免費
那麼其實在黃龍、九寨溝之間存在一個荒無人煙的地方,這裡方圓五十里都尚未被開放,當然這是一條不會被旅行社所推薦的旅遊路線,畢竟危險係數比較高,而且沒有配套的各種措施,比較適合那些愛冒險、闖蕩的朋友們...
- 死於尼泊爾空難的女副駕:丈夫墜機身亡她接力飛行夢,離當機長僅一步之遙
據尼泊爾媒體報道,客機的副駕駛是名叫Anju的女飛行員,17年前她的飛行員丈夫死於空難後,她選擇成為一名飛行員,繼續丈夫的夢想,她此次飛行結束後即將成為一名機長,然而就在她作為副駕的最後一次飛行中,只差10秒就能著陸時,飛機卻意外墜毀,令人...