プログラミング雑記

プログラミングの雑記です。

GoFパターンをなるべく短文で説明を求められたとき用

  • Iteratorパターン・・・Iterator[hasNext, next]
  • Adapter・・・異なるインターフェースのオブジェクトを、同じインターフェースで扱う
  • TemplateMethod・・・abstract method
  • FactoryMethod・・・FactoryオブジェクトがProductオブジェクトを作るという話
  • Singleton・・・Singleton
  • Prototype・・・clone用のメソッドを用意するという話
  • Builder・・・オブジェクトのフィールドを埋めながら、buildメソッドを呼び出すとオブジェクトが作れるクラスの話
  • AbstractFactory・・・複数の関連するオブジェクトを生成するFactoryを用意する話。インターフェースがAbstract。(FactoryMethodの集まり)
  • Bridge・・・ストラテジーパターンオブジェクトに実装を任せてるという話。ストラテジーパターンオブジェクトに委譲の橋をかけるイメージ。
  • Strategy・・・多態性の話。キャッシュポリシーなどのポリシーは、Strategyの派生形
  • Composite・・・Componentインターフェースを継承したCompositeとLeafを作って、CompositeにComponentのリストを持つようにすれば、ディレクトリとファイルの関係を定義しやすくなる話。
  • Decorator・・・すでにあるオブジェクトに付加的なロジックを追加したい場合、同じインターフェースで該当オブジェクトを持つようなDecoratorオブジェクトを作ればいいという話。
  • Visitor・・・(処理をするものをVisitor、処理をされるものをAccepterとしておく。) VisitorにAccepterを渡して処理をする時、例えばJavaでは、オーバーロードされたメソッドの呼び出しは、変数の型に依存する。この場合は、Accepterのacceptメソッド経由で実インスタンスのメソッドを呼び出してVisitorのvisitメソッドを呼んでもらえば対応できる。
  • Chain of Responsibility・・・Responsibility Chain
  • Facade・・・処理を一箇所にまとめる
  • Mediator・・・複数のオブジェクトに関してマネージメントするクラスに関する話。
  • Observer・・・Observer
  • Memento・・・状態の復元
  • State・・・状態に関するストラテジー
  • Flyweight・・・文字リテラルのように複数生成する必要のないものを内部的にキャッシュし、何度呼び出されても、生成は一度にするという話
  • Proxy・・・キャッシュサーバーなどのように代理オブジェクトを用意する話。
  • Command・・・1つの処理を1オブジェクトにしておけば、Queueにして逐次実行するなどできる話
  • Interpreter・・・CompositeパターンのComponentがCommandだったときの話