プロトタイプパターン定義:プロトタイプインスタンスを使用して、作成するオブジェクトのタイプを指定し、これらのプロトタイプをコピーして新しいオブジェクトを作成します。
プロトタイプモードにより、オブジェクトはそれを作成する方法の詳細を知らずに別のカスタマイズ可能なオブジェクトを作成できます。 。
プロトタイプモードの使用方法
Javaはオブジェクトクローニングを実装するためのclone()方法を提供するため、プロトタイプモードの実装は突然非常に簡単になります。例としてスプーンを取ります:
コードコピーは次のとおりです。
パブリックアブストラクトクラスの要約spoonはクローン可能{
文字列spoonname;
public void setspoonname(string spoonname){this.spoonname = spoonname;}
public string getspoonname(){return this.spoonname;}
public object clone(){
オブジェクトオブジェクト= null;
試す {
object = super.clone();
} catch(clonenotsupportedexception例外){
system.err.println( "abstractspoonはクローン可能ではありません");
}
オブジェクトを返します。
}
}
2つの具体的な実装(ConcreTeprototype)があります。
コードコピーは次のとおりです。
パブリッククラスのsoupspoonはabstractspoonを拡張します{
public soupspoon(){
setspoonname( "スープスプーン");
}
}
パブリッククラスのsaladspoonはabstractspoonを拡張します{
public saladspoon(){
setSpoonName( "サラダスプーン");
}
}
プロトタイプモードの呼び出しは簡単です:
コードコピーは次のとおりです。
abstractspoon spoon = new soupspoon();
abstractspoon spoon = new saladspoon();
もちろん、ファクトリーモードを組み合わせて抽象的なインスタンスを作成することもできます。
Javaでは、プロトタイプパターンの使用は、Javaの純粋なオブジェクト指向の性質により、Javaで設計パターンを使用することが非常に自然になり、2つはほぼ統合されています。これは、インターサートラバーサルモードなど、多くのモードに反映されます。