美文网首页
原型模式

原型模式

作者: 要学的东西太多了 | 来源:发表于2018-10-30 17: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();
        }
    

    相关文章

      网友评论

          本文标题:原型模式

          本文链接:https://www.haomeiwen.com/subject/qszgtqtx.html