client:客戶端,負責建立命令並設定其接收者。
invoker:呼叫者,持有乙個或多個命令物件,並在某個時間點呼叫命令物件的execute方法。
command:命令介面,包含execute、undo方法;做日誌記錄恢復用途時,還可以包含store、load方法。
concretecommand:命令實現類,定義了動作和接收者之間的繫結關係;可以是乙個巨集命令(內含多個命令)
receiver:接收者,具體實現請求動作的物件。任何類都可以當接收者。
技能組提供的技能物件(receiver):蓋倫的大招、豬妹的大招
public
class
galenskill
}public
class
sejuaniskill
}
定義命令介面
public
inte***ce
command
命令介面的實現類,包裝上面的兩個技能
public
class
galencommand
implements
command
@override
public
void
execute()
}public
class
sejuanicommand
implements
command
@override
public
void
execute()
}
定義塞拉斯英雄(invoker)
public
class
sylasinvoker
public
void
releaser()
}
客戶端呼叫
public
class
client
}
執行結果 DDD的終極大招 By Experience
以ddd思想和微服務架構為代表的新的架構時代正在逐步形成,不同方法和工具的湧現讓人激動不已,同時這個過程也讓人感覺到些許的不安,因為沒有一套方法和一套架構能夠打遍天下,我們能明確告訴所有組織和團隊的,也只是架構設計上應該 響應變化勝過遵循計畫 具體到採用哪一種架構設計思想和方法,彷彿都需要增加乙個定...
命令模式的優點 設計模式之命令模式
命令模式 command pattern 將乙個請求封裝成乙個物件,從而讓你使用不同的請求把客戶端引數化,對請求排隊或者記錄請求日誌,可以提供靈敏的撤銷和恢復公共能。命令模式的類圖如下 命令模式的角色 1 command 抽象命令,需要執行的命令 2 receiver接受者,就是業務邏輯的執行者 3...
命令模式的應用
命令模式用得比較少,一般都是在實際專案開發的後發現需要用的時候我們通過重構來實現。在現實生活中,我們也用這個設計模式 例如 咱們去餐館點菜的時,服務員美眉會給我們簡紹些好吃的菜,若點菜時,廚房沒有了會提示我們 吃飯到中途時,菜多可撤銷 菜少可新增。我們不需要關心具體是哪個大廚炒菜。這個就是我們今天要...