读书人

设计形式==原型模式(ProtoType)

发布时间: 2012-08-26 16:48:06 作者: rapoo

设计模式==原型模式(ProtoType)

/* * 原型模式(ProtoType) * * 通过一个原型对象来创建一个新对象(克隆)。Java中要给出Clonable接口的实现,具体类要实现这个接口,并给出clone()方法的实现细节,这就是简单原型模式的应用。  浅拷贝:只拷贝简单属性的值和对象属性的地址  深拷贝:拷贝本对象引用的对象,有可能会出现循环引用的情况。可以用串行化解决深拷贝。写到流里再读出来,这时会是一个对象的深拷贝结果。 * * */package model;import java.io.Serializable;public class TestClonealbe {    public static void main(String[] args) throws Exception {        Father f = new Father();        User u1 = new User("123456", f);        User u2 = (User) u1.clone();        System.out.println(u1 == u2);        System.out.println(u1.f == u2.f);    }}class User implements Cloneable, Serializable {        private static final long serialVersionUID = 1L;    String password;    Father f;    public User(String password, Father f) {        this.password = password;        this.f = f;    }    public Object clone() throws CloneNotSupportedException {        return super.clone();    }}class Father implements Serializable {    private static final long serialVersionUID = 1L;}
?

读书人网 >软件开发

热点推荐