KICK THE DP

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

Ch.19 KICK THE STATE

【目標】

Stateパターンを使って、イッサイガッサイの1週間をやってみよう

【クラス図】

f:id:mikeera2:20160927182447p:plain

【実装】

<DayOfWeek抽象クラス:State>

f:id:mikeera2:20160927182839p:plain

≪Sundayクラス:ConcreteState≫

f:id:mikeera2:20160927183327p:plain

≪Mondayクラス:ConcreteState≫

~略~

≪Tuesdayクラス:ConcreteState≫

~略~

≪Wednesdayクラス:ConcreteState≫

~略~

≪Thursdayクラス:ConcreteState≫

~略~

≪Fridayクラス:ConcreteState≫

~略~

≪Issaigassaiクラス:Context≫

f:id:mikeera2:20160927183816p:plain

f:id:mikeera2:20160927183820p:plain

[Mainクラス]

f:id:mikeera2:20160927183939p:plain

【出力結果】

f:id:mikeera2:20160927184052p:plain

【メモ】

・そろそろワンパターン

・列挙型を使いたくなるところをクラスにまとめているのがポイント

・もうちょっとConcreteStateがいろんなメソッドを持たないとメリットがわからない

・「状態」がメソッドを行うというのに多少違和感がある