public class ConcretePrototype implements Cloneable { String name; public ConcretePrototype(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Object clone() throws CloneNotSupportedException { return super.clone(); } }
public class Client { public static void main(String[] args) { try { ConcretePrototype tanaka = new ConcretePrototype("tanaka"); ConcretePrototype hirokazu = new ConcretePrototype("hirokazu"); ConcretePrototype[] clones = new ConcretePrototype[10]; for (int i=0;i<clones.length;i++) { if (i % 2 == 0) { clones[i] = (ConcretePrototype)tanaka.clone(); } else { clones[i] = (ConcretePrototype)hirokazu.clone(); } } // 表示 for (int i=0;i<clones.length;i++) { System.out.println(clones[i].getName()); } } catch (CloneNotSupportedException e) { e.printStackTrace(); } } }
C:\JavaHello\Prototype>java Client tanaka hirokazu tanaka hirokazu tanaka hirokazu tanaka hirokazu tanaka hirokazu C:\JavaHello\Prototype>