原型模式

原型模式被用在频繁调用且极其相似的对象上。原型模式会克隆对象并设置改变后的属性。原型模式消耗的资源较少。这其中原因何在?

原型模式类图:

 

原型模式示例代码:

 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 }

 

posted on 2013-11-18 16:40  亦諾  阅读(85)  评论(0编辑  收藏  举报

导航