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

原型模式也就是克隆模式,当一个对象比较大,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(); //拷贝了一份新对象

  

原文地址:https://www.cnblogs.com/javabg/p/7444860.html