美文网首页
原型模式

原型模式

作者: tommyhxh | 来源:发表于2018-06-20 10:54 被阅读0次

    模式的思想就是将一个对象作为原型,对其进行复制、克隆,产生一个和原对象类似的新对象
    在Java中,复制对象是通过clone()实现的

    public class Prototype implements Cloneable {
    
        public Object clone() throws CloneNotSupportedException {
            Prototype proto = (Prototype) super.clone();
            return proto;
        }
    }
    
    

    浅复制:将一个对象复制后,基本数据类型的变量都会重新创建,而引用类型还是指向原对象。
    深复制:将一个对象复制后,不论是基本数据类型还有引用类型,都是重新创建的。简单来说,就是深复制进行了完全彻底的复制,而浅复制不彻底。

    /* 深复制 */
        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/uavtyftx.html