このブログが本になりました!
一般販売と今後の更新の予定はありません。
Ch.23 KICK THE INTERPRETER
【目標】
Interpreterパターンを使って、"SWING TOGETHER マイナス W"を求めてみよう
【クラス図】
【実装】
<IExpressionインターフェース:AbstractExpression>
≪WordExpressionクラス:TerminalExpression≫
≪MinusExpressionクラス:TerminalExpression≫
≪Parserクラス:Context≫
[Mainクラス:Client]
【出力結果】
【メモ】
・この企画のクライマックスにふさわしい地味さ加減がすばらしい
・NonterminalExpression?何それ。
・XMLのパーサーとかにも使えるかなぁ
Ch.22 KICK THE COMMAND
【目標】
COMMANDパターンを使って、KICK THE CAN CREWのベストアルバムをタイトル順にソートしたあと、履歴をたどって元に戻そう
【クラス図】
【シーケンス図】
【実装】
<ICommandインターフェース:Command>
≪Swapクラス:ConcreteCommand≫
≪MacroSwapクラス:ConcreteCommand≫
≪Albumクラス:Receiver≫
[Mainクラス:Client, Invoker]
【出力結果】
【メモ】
・これソースだけで理解するの難しそう
・Albumクラス(実体)→Swapクラス(命令を表すクラス)→Albumクラス(実体)というふうに処理が流れているところがポイント
・履歴を保存する以外にも用途があるらしいけど、よくわからん。似たような操作をクラスとしてまとめる感じ?
Ch.20 KICK THE FLYWEIGHT
【目標】
FLYWEIGHTパターンを使って、アンバランスを ≠″ ャ 」レ 文字 イヒ ι ちゃ ぇ ☆
【 勹 ラ ス 図】
【 ι″っξ ぅ 】
≪GalCharacter 勹 ラ ス :Flyweight≫
≪GalCharacterConverter勹 ラ ス :FlyweightFactory≫
[Main勹 ラ ス :Client]
【 ι ゅ ⊃ 丶) ょ < レナ っ カゝ 】
【 乂 モ 】
・重複を 于 ェッ 勹 ι τ、同 ι″ ィ ・/ ス 勺 ・/ ス を イ乍 成 ι ナょ レヽ ょ ぅ レニ ι τ レヽ ゑ ー⊂ ⊇ з カゞ 朮° ィ ・/ ├
・ ≠″ ャ 」レ レよ 木黄 文字 レニ 弱 レヽ
Ch.19 KICK THE STATE
【目標】
Stateパターンを使って、イッサイガッサイの1週間をやってみよう
【クラス図】
【実装】
<DayOfWeek抽象クラス:State>
≪Sundayクラス:ConcreteState≫
≪Mondayクラス:ConcreteState≫
~略~
≪Tuesdayクラス:ConcreteState≫
~略~
≪Wednesdayクラス:ConcreteState≫
~略~
≪Thursdayクラス:ConcreteState≫
~略~
≪Fridayクラス:ConcreteState≫
~略~
≪Issaigassaiクラス:Context≫
[Mainクラス]
【出力結果】
【メモ】
・そろそろワンパターン
・列挙型を使いたくなるところをクラスにまとめているのがポイント
・もうちょっとConcreteStateがいろんなメソッドを持たないとメリットがわからない
・「状態」がメソッドを行うというのに多少違和感がある
Ch.18 KICK THE MEMENTO
【目標】
Mementoパターンを使って、マルシェスロット的なことをやってみよう
【クラス図】
【実装】
≪MarcheMemoryクラス:Memento≫
≪MarcheSlotクラス:Originator≫
[Mainクラス:Caretaker]
【出力結果】
【メモ】
・KICK関係ねぇし
・本来はGUIの操作内容を保存しとくためとかに使用するらしい