2017-09-30
Command パターン
デザインパターンちゃんと勉強をしようと思ったので結城さんの本を 1 つ 1 つ実装してみる。 前回の Proxyからの続き。
動作を表現するオブジェクトを示す。Command オブジェクトは、動作とそれに伴うパラメータをカプセル化したものである。
Wikipedia では以下のようなものが Command パターンにすると良いって書いてる
- 複数レベルのアンドゥ
- トランザクション的振る舞い
- プログレスバー
- ウィザード
- GUI のボタンとメニューの項目
- スレッドプール
- マクロの記録
- 並列処理
- 移動可能なコード
状態が多いクライアントアプリケーションのパターンが多くて PHP ではなかなか想像がしにくい
今回の書籍側は GUI で描画するようなものだったので違う例で実装。参考にしたのは以下
クラス図
自分としての理解・疑問
- これいっつも「やっちゃって大丈夫なのかな?」と思ってた実装
- 再利用性を高めるというのは理解できるのだけど、分離されているか?と思うとどうしてもできてない印象があって「んー」と思ってた。
- 規範がしっかりしてればこういう形もアリなんだなと。
- Undo Redo は便利そう。Memento ですね。