KICK THE DP

KICK THE CAN CREWでデザインパターンを攻略するブログ

Ch.22 KICK THE COMMAND

【目標】

COMMANDパターンを使って、KICK THE CAN CREWのベストアルバムをタイトル順にソートしたあと、履歴をたどって元に戻そう

【クラス図】

f:id:mikeera2:20160928173125p:plain

【シーケンス図】

f:id:mikeera2:20160928173138p:plain

【実装】

<ICommandインターフェース:Command>

f:id:mikeera2:20160928174430p:plain

≪Swapクラス:ConcreteCommand≫

f:id:mikeera2:20160928174834p:plain

≪MacroSwapクラス:ConcreteCommand≫

f:id:mikeera2:20160928180809p:plain

f:id:mikeera2:20160928180821p:plain

≪Albumクラス:Receiver≫

f:id:mikeera2:20160928182445p:plain

f:id:mikeera2:20160928182449p:plain

[Mainクラス:Client, Invoker]

f:id:mikeera2:20160928182938p:plain

f:id:mikeera2:20160928182945p:plain

【出力結果】

f:id:mikeera2:20160928183118p:plain

f:id:mikeera2:20160928183125p:plain

【メモ】

・これソースだけで理解するの難しそう

・Albumクラス(実体)→Swapクラス(命令を表すクラス)→Albumクラス(実体)というふうに処理が流れているところがポイント

・履歴を保存する以外にも用途があるらしいけど、よくわからん。似たような操作をクラスとしてまとめる感じ?