Prototype パターン
ファクトリメソッドはサブクラスの生成を必要とするが、初期化を必要としない。
Composite パターンとDecorator パターンを多用するデザインにおいてもPrototypeパターンはしばしば有用である。
複製しようとしているオブジェクトの「真正なコピー」である別のオブジェクトを「ランタイムに」生成したい場合には、オブジェクトをclone()する必要があるであろうというのが経験則である。「真正なコピー」(True copy)というのは、新規作成されるオブジェクトの全ての属性が複製しようとしているオブジェクトと同一でなければならないという意味である。代わりにnewを用いてクラスから「インスタンス作成」したならば、全ての属性がその初期値となったオブジェクトが得られる。
例えば、銀行口座の取引を行うシステムをデザインしているとすると、口座の情報を保持しているオブジェクトのコピーを作成し、そのコピーに取引を実施し、それからこのコピーで元のオブジェクトを置き換える必要があるであろう。このような場合には、newの代わりにclone()を用いたいであろう。