• 设计模式系列之----原型模式


    原型模式也就是克隆模式,当一个对象比较大,new对象比较耗时间,那么就可以采用原型模式来进行复制,复制分深复制和浅复制,深复制就是连引用对象也一起复制,而浅复制只复制引用对象的引用地址,不复制对象本体,要实现浅复制,只需要实现目标对象实现Cloneable接口,实现clone()方法,直接return super.clone();就可以实现复制,JDK调用的是native虚拟机中的C代码实现的复制,而深复制就需要实现Serializable接口来进行序列化操作,通过序列化成二进制来创建新对象,代码如下:

    		Sheep sheep1 = new Sheep("a");
    		ByteArrayOutputStream bos=new ByteArrayOutputStream();
    		ObjectOutputStream oos=new ObjectOutputStream(bos);//先反序列化对象到字节数组流中
    		oos.writeObject(sheep1);
    		byte[] outArray = bos.toByteArray(); 
    		
    		ByteArrayInputStream bis=new ByteArrayInputStream(outArray);
    		ObjectInputStream ois=new ObjectInputStream(bis);  //从字节数组流中读取到对象
    		Sheep sheep2=(Sheep) ois.readObject(); //拷贝了一份新对象
    

      

  • 相关阅读:
    jchdl
    jchdl
    jchdl
    jchdl
    jchdl
    jchdl
    jchdl
    UVa 437 (变形的LIS) The Tower of Babylon
    UVa 1025 (动态规划) A Spy in the Metro
    UVa 10129 (并查集 + 欧拉路径) Play on Words
  • 原文地址:https://www.cnblogs.com/javabg/p/7444860.html
Copyright © 2020-2023  润新知