デザインパターンをできるだけ短く表す試み前半

背景

流し読みしたデザインパターンの本をQuick Recapするための記事

参考: 増補改訂版 Java言語で学ぶデザインパターン入門 Kindle版

Iteratorパターン

繰り返しのロジックを集合体から分離することで、集合体を変更しても繰り返しのロジックを作成しなくてすむ

Adopterパターン

元々のクラスやインスタンスのラッパーを書くことで、呼び出し元で違うメソッド名として呼び出せる

Template Methodパターン

抽象クラスやインターフェースでメソッドをざっくりと定義しておいて、サブクラスや実装クラスでその詳細を実装する

Factory Methodパターン

コンストラクタではなくメソッドでインスタンスの生成を行うことによって、スーパークラスが具体的なクラス名を知っている必要がなくなる

Singletonパターン

プロジェクトの中でインスタンスが1つしか存在しないことを保証する。コンストラクタをprivateにして外部から呼ばれないようにし、getInstance() を初めて呼んだときにthis.singletonが初期化され、その後はそのインスタンスが返される。

Prototypeパターン

微妙に挙動が異なる複数のクラスを定義するのではなく、雛形を作っておいて、その雛形にパラメータを与えることで、挙動の違うインスタンスを表現する

Builderパターン

Builderという抽象クラス/インターフェースを継承/実装するクラスを複数作成し、どのクラスを呼び出し元に与えるかを変えることで、どんな形式で(html/textなど)出力するか分岐できる

感想

納得感は強いが、実際に使わないと定着はしなさそう。 以下のパターンは実装したことがなかったので、今後使っていきたい。

  • Singleton
  • Prototype