您的位置:首页 > 其它

设计模式-原型模式

2015-10-27 11:36 337 查看

1.定义

用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。

2.UML






3.代码

public class PrototypeClass implements Cloneable {

public ArrayList<String> mList = new ArrayList<String>();

public PrototypeClass() {
System.out.println("clone对象不会执行构造函数");
}

@Override
protected PrototypeClass clone() {
PrototypeClass obj = null;
try {
obj = (PrototypeClass) super.clone();
obj.mList = (ArrayList<String>) mList.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return obj;
}
}


public class Client {

public static void main(String[] args) {
PrototypeClass prototypeObject = new PrototypeClass();
prototypeObject.mList.add("张三");
PrototypeClass newPrototypeObject = prototypeObject.clone();
newPrototypeObject.mList.add("李四");
}
}


4.注意事项

clone方法是直接拷贝内存二进制流,比new性能好很多

1.clone对象的构造函数不会执行;

2.浅拷贝:只拷贝本对象,对象的成员变量引用、数组还是指向原对象的内存地址

3.深拷贝:重写clone方法,clone成员变量引用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: