將乙個請求封裝成乙個物件,從而讓你使用不同的請求把客戶端引數化,對請求排隊或者記錄請求日誌,可以提供命令的撤銷和恢復功能
命令模式的通用類圖
receive接收者角色是幹活的角色,命令傳遞到這裡是應該被執行的;command命令角色,需要執行的命令都在這裡宣告;invoker呼叫者角色,接收到命令,並執行命令。
命令模式的通用原始碼
通用receiver類
public
abstract
class
receiver
具體的receiver類
public
class
concretereciver1
extends
receiver
}
public
class
concretereciver2
extends
receiver
}
抽象的command類
public
abstract
class
command
具體的command類
public
class
concretecommand1
extends
command
//必須實現乙個命令
public
void
execute()
}
public
class
concretecommand2
extends
command
//必須實現乙個命令
public
void
execute()
}
呼叫者invoker類
public
class
invoker
//執行命令
public
void
action()
}
場景類
public
class
client
}
如果有n個命令,command的子類就為n個,這個類會膨脹得非常大
只要是命令的地方就可以採用命令模式。
Android設計模式之(10) 命令模式
命令模式屬於行為模式。如你的上級領導指派給你的a,b,c三項任務。讓你做a,你就做a,讓你做b就做b。指哪打哪。外部的人對於你和你的領導來說,知道你的領導派發了abc任務給你,你也完成abc任務,任務具體是怎麼完成的外部的人並不需要關心。大學的新生入學都會進行軍訓,軍訓的專案有正步,齊步,軍姿等等 ...
10 策略模式
參考 1.策略模式定義了一系列演算法,並將每個演算法封裝起來,使他們可以相互替換,且演算法的變化不會影響到使用演算法的客戶。需要設計乙個介面,2.為一系列實現類提供統一的方法,多個實現類實現該介面,設計乙個抽象類 可有可無,屬於輔助類 提供輔助函式 3.策略模式的決定權在使用者,系統本身提供不同演算...
設計模式(10) 外觀模式
外觀模式 facade pattern 隱藏系統的複雜性,並向客戶端提供了乙個客戶端可以訪問系統的介面。這種型別的設計模式屬於結構型模式,它向現有的系統新增乙個介面,來隱藏系統的複雜性。這種模式涉及到乙個單一的類,該類提供了客戶端請求的簡化方法和對現有系統類方法的委託呼叫。用乙個簡單的例子來解釋一下...