Prototype パターン
Prototype パターン(英: Prototype pattern、プロトタイプ・パターン)とは、ソフトウェア開発で用いられる、生成に関するデザインパターンの1つである。生成されるオブジェクトの種別がプロトタイプ(典型)的なインスタンスであるときに使用され、このプロトタイプを複製して新しいオブジェクトを生成する。
このパターンは
Abstract Factory パターンでなされるように、クライアント・アプリケーションにおいてオブジェクトの生成者をサブクラスにすることを回避する
標準的な方法(例えば'new')で新しいオブジェクトを作ることによる固有のコストが所与のアプリケーションにとって高すぎる時にそれを回避する
ために用いられる。
このパターンを実装するには、純粋仮想 (pure virtual method) の clone()メソッドを指定する抽象的(abstract)な基底クラスを宣言する。「多態性を持つコンストラクタ」の能力を必要とする全てのクラスは抽象的な基底クラスから自身を派生させ、clone()の操作を実装する。
クライアントは、ハードコードされたクラス名において"new"演算子を呼び出すコードを書く代わりに、プロトタイプにおいてclone()メソッドを呼び出すか、所望の特定の具体的(concrete)な派生クラスを指し示すパラメタを渡してファクトリメソッドを呼び出すか、clone()メソッドを他のデザインパターンにより供給される何らかの機構を通じて呼び出すかする。