设计模式02 原型模式

原型模式(Prototype)定义:用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。

在Java中,通过实现Cloneable接口中的clone()方法,可以方便的实现原型模式,具体代码如下:

原型类:

 1 public class Realizetype implements Cloneable {
 2     public int x;
 3     public Object obj;
 4 
 5     Realizetype() {
 6         System.out.println("具体原型创建成功!");
 7     }
 8 
 9     public Realizetype(int x, Object obj) {
10         this.x = x;
11         this.obj = obj;
12     }
13 
14     public Object clone() throws CloneNotSupportedException {
15         System.out.println("具体原型复制成功!");
16         return (Realizetype) super.clone();
17     }
18 }

调用方式:

 1 public class Client {
 2     public static void main(String[] args) throws CloneNotSupportedException {
 3         Realizetype obj1 = new Realizetype(20, "张三");
 4         Realizetype obj2 = (Realizetype) obj1.clone();
 5         System.out.println("obj1 == obj2?" + (obj1 == obj2));
 6 
 7         System.out.println("obj1.x == obj2.x?" + (obj1.x == obj2.x));
 8 
 9         System.out.println("obj1.obj == obj2.obj?" + (obj1.obj == obj2.obj));//说明是浅拷贝
10     }
11 }

执行结果:

上面第9行,执行结果是true,说明这种方式复制的对象属于浅拷贝。

原文地址:https://www.cnblogs.com/asenyang/p/12111018.html