原型模式

2018-10-30  本文已影响0人  要学的东西太多了

1.原型模式也叫克隆模式,分为浅克隆和深克隆。浅克隆只能克隆基本类型和String,其他对象实际上还是指向同一个引用。深克隆是连内部对象都一起克隆,需要注意克隆的深度和循环引用的问题。

2.深度克隆可以用序列化来实现,通过将一个实现了Serializable接口的对象写入流,再从流里读出来,得到的就是一个深度克隆的对象。示例:

public  Object deepClone() throws IOException, ClassNotFoundException{
        //将对象写到流里
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        ObjectOutputStream oos = new ObjectOutputStream(bos);
        oos.writeObject(this);
        //从流里读回来
        ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
        ObjectInputStream ois = new ObjectInputStream(bis);
        return ois.readObject();
    }
上一篇下一篇

猜你喜欢

热点阅读