原型模式:通过克隆对象来进行创建对象
原型模式的优点:
1.原型模式的拷贝属于二进制的拷贝,比new的创建性能更好
2.克隆对象不会调用类的构造函数,可以进行逃避
3.多线程操作同一个对象时,可以通过克隆的方式复制到不同的线程中,避免了线程不安全
标准类图只需要实现Cloneable即可
public class MyClass implements Cloneable {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
protected MyClass clone() {
MyClass myClass = null;
try {
myClass = (MyClass) super.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return myClass;
}
}
场景类:
public class Client {
public static void main(String[] args) {
MyClass obj1 = new MyClass();
obj1.setName("lilei");
MyClass obj2 = obj1.clone();
obj2.setName("hanmeimei");
System.out.println(obj1.getName());
System.out.println(obj2.getName());
}
}