昨日会社のメンバーからコーディングについて相談を受けました。 話を聞いていると、オブジェクト指向設計を利用してコードをリファクタリングしたい様子でした。 彼は頑張ってインターフェースやクラスを自分で定義していたんですが、ちょっとぎこちない設計だったので、おいらはStateパターンとFactoryパターンらしきテクニックを使って、改善のお手伝いをしてみました。 そのときの事例をめちゃくちゃデフォルメして説明すると、こんな感じになります。 プログラムはStateに応じて文字や色を変更します。 初期状態です。 ボタンを押すとStateに応じて文字や色が変わります。 メンバーが最初に書いていたプログラムのイメージはこんな感じです。 using System; using System.Collections.Generic; using System.ComponentModel; using S