10 命令模式

2021-10-01 22:35:01 字數 1342 閱讀 7867

將乙個請求封裝成乙個物件,從而讓你使用不同的請求把客戶端引數化,對請求排隊或者記錄請求日誌,可以提供命令的撤銷和恢復功能

命令模式的通用類圖

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 隱藏系統的複雜性,並向客戶端提供了乙個客戶端可以訪問系統的介面。這種型別的設計模式屬於結構型模式,它向現有的系統新增乙個介面,來隱藏系統的複雜性。這種模式涉及到乙個單一的類,該類提供了客戶端請求的簡化方法和對現有系統類方法的委託呼叫。用乙個簡單的例子來解釋一下...