デザインパターン - Prototype
【Prototypeパターンとは】
インスタンスをコピーして利用する。
【Prototypeパターンのクラス図】
【Prototypeパターンのメリット】
複雑な生成過程のあるインスタンスをコピーして利用できる。
【サンプル】
Paper.java |
package prototype;
public class Paper implements Cloneable{
private String text = "";
public void addLine(String text) {
this.text += text;
this.text += System.getProperty("line.separator");
}
public void showText() {
System.out.println(text);
}
public Paper createClone() throws CloneNotSupportedException {
return (Paper)clone();
}
}
|
PrototypeTest.java |
package prototype;
public class PrototypeTest {
/**
* @param args
* @throws CloneNotSupportedException
*/
public static void main(String[] args) throws CloneNotSupportedException {
// 試作品を作る
Paper paper = new Paper();
// 文字を書きます
paper.addLine("1行目書きました");
paper.addLine("2行目書きました");
paper.addLine("3行目書きました");
//
paper.showText();
// 紙をコピーする
Paper paper2 = paper.createClone();
paper2.showText();
}
}
|
結果 |
1行目書きました
2行目書きました
3行目書きました
1行目書きました
2行目書きました
3行目書きました
|