设计模式==原型模式(ProtoType)
程序员文章站
2022-06-12 22:24:26
...
/*
* 原型模式(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;
}
上一篇: JS学习
下一篇: 预防抑郁症到底有哪些方法