iOS設計模式之命令模式

2021-09-29 15:30:46 字數 771 閱讀 4488

命令(command)模式的:將乙個請求封裝為乙個物件,使發出請求的責任和執行請求的責任分割開。這樣兩者之間通過命令物件進行溝通,這樣方便將命令物件進行儲存、傳遞、呼叫、增加與管理。

命令(command)模式的定義如下:將乙個請求封裝為乙個物件,使發出請求的責任和執行請求的責任分割開。這樣兩者之間通過命令物件進行溝通,這樣方便將命令物件進行儲存、傳遞、呼叫、增加與管理。

命令模式的主要優點如下。

降低系統的耦合度。命令模式能將呼叫操作的物件與實現該操作的物件解耦。

增加或刪除命令非常方便。採用命令模式增加與刪除命令不會影響其他類,它滿足「開閉原則」,對擴充套件比較靈活。

可以實現巨集命令。命令模式可以與組合模式結合,將多個命令裝配成乙個組合命令,即巨集命令。

方便實現 undo 和 redo 操作。命令模式可以與後面介紹的備忘錄模式結合,實現命令的撤銷與恢復。

其缺點是:可能產生大量具體命令類。因為計對每乙個具體操作都需要設計乙個具體命令類,這將增加系統的複雜性。

命令模式包含以下主要角色。

抽象命令類(command)角色:宣告執行命令的介面,擁有執行命令的抽象方法 execute()。

具體命令角色(concrete    command)角色:是抽象命令類的具體實現類,它擁有接收者物件,並通過呼叫接收者的功能來完成命令要執行的操作。

客戶去餐館可選擇的早餐有腸粉、河粉和餛飩等,客戶可向服務員選擇以上早餐中的若干種,服務員將客戶的請求交給相關的廚師去做。這裡的點早餐相當於「命令」,服務員相當於「呼叫者」,廚師相當於「接收者」,所以用命令模式實現比較合適。

iOS設計模式 命令

ios設計模式 命令 原理圖 命令物件封裝了如何對目標執行指令的資訊,因此客戶端或呼叫者不必了解目標的任何細節,卻仍可以對他執行任何已有的操作。通過把請求封裝成物件,客戶端可以把它引數化並置入佇列或日誌中,也能夠支援可撤銷操作。命令物件將乙個或多個動作繫結到特定的接收器。命令模式消除了作為物件的動作...

IOS設計模式之委託模式

委託模式從gof裝飾模式 decorator 介面卡模式 adapter 模板方法 template method 模式等演變而來,幾乎每乙個應用都會或多或少地用到委託模式,不只是cocoa touch框架,在cocoa中,委託模式也得到了廣泛的應用。include usingnamespace s...

iOS 設計模式之工廠模式

ios 工廠模式我的理解是 他就是為了建立物件的 建立物件的時候,我們一般是alloc乙個物件,如果需要建立100個這樣的物件,如果是在乙個for迴圈中還好說,直接一句alloc就行了,但是事實並不那麼如意,我們可能會在不同的地方去建立這個物件,那麼我們可能需要寫100句alloc 了,但是如果我們...