デザインパターンについて、今更ながら学び始めました。開発パターンと名前を知っておくのは大事なので読み始めました。
それにしても Java を真面目に使う機会が今までなかったので非常に新鮮です。まだまだ途中ですが、経過報告ということで上げておきます。

まとめ

Iterator

Ruby の each (イテレータ) そのまま。
普通、多くのデータを管理する場合に Iterator を使わない場合、for 等の繰り返し文を使い、配列内のデータを数値によって取り出す。
Iterator パターンの場合は、管理対象 (データ) をオブジェクトにし、その集合を管理するオブジェクトを用いてデータを取得する。

Adapter

Wrapper とも言う。ラッパーの意味そのまま。
既存のコードを用いて新しいインターフェースを用意する場合や、少量の変更を行う場合に必要な部分に関して Adapter を適用する。既存のコードを修正しない方が利益を享受できる。

Template Method

所謂テンプレート。
冗長化したロジックを纏める場合や、ビューを生成する時に用いる。
テンプレートを使用する事で DRY (Don’t Repeat Yourself) なコードを保つ事ができる。

Factory

一言で言い表す物が思いつかなかった。Java の abstract が一番感じが近いと思う。
抽象クラスに最低限必要な機能を予約しておき、具象クラスで継承し、機能の具体的な振る舞いを決定する方法。抽象クラスには汎用な機能を設定する事で一貫したコードに纏められる。

Singleton

インスタンスの生成出来る数を一つだけに限定する事で余計なバグを入れ込まないパターン。
コンストラクタを private (java) に指定する事でクラス外からインスタンスの生成を行う事が出来ない様にする。また、同クラスのメンバに new Singleton を行う事で、ゲッターを用い、インスタンスを取得出来る。

public class Singleton {
  private static Singleton singleton = new Singleton();
  private Singleton() {}
  public static Singleton getInstance() {
    return singleton;
  }
}