原型模式
原型模式被用在频繁调用且极其相似的对象上。原型模式会克隆对象并设置改变后的属性。原型模式消耗的资源较少。这其中原因何在?
原型模式类图:
原型模式示例代码:
1 //原型 2 interface Prototype { 3 void setSize(int x); 4 void printSize(); 5 } 6 // 一个具体类 7 class A implements Prototype, Cloneable { 8 private int size; 9 public A(int x) { 10 this.size = x; 11 } 12 13 @Override 14 public void setSize(int x) { 15 this.size = x; 16 } 17 18 @Override 19 public void printSize() { 20 System.out.println("Size: " + size); 21 } 22 23 @Override 24 public A clone() throws CloneNotSupportedException { 25 return (A) super.clone(); 26 } 27 } 28 //需要很多类似的对象进行测试 29 public class PrototypeTest { 30 public static void main(String args[]) throws CloneNotSupportedException { 31 A a = new A(1); 32 for (int i = 2; i < 10; i++) { 33 Prototype temp = a.clone(); 34 temp.setSize(i); 35 temp.printSize(); 36 } 37 } 38 }