响应式网站滑动,查询网站开发,建设好网站,四川省的住房和城乡建设厅网站原型模式就是利用一个克隆”原型“来产生新对象的一种模式#xff0c; 克隆又分浅克隆与深克隆#xff0c; 浅克隆#xff1a;将一个对象复制后#xff0c;基本数据类型的变量都会重新创建#xff0c;而引用类型#xff0c;指向的还是原对象所指向的。 深克隆#xff1a…原型模式就是利用一个克隆”原型“来产生新对象的一种模式 克隆又分浅克隆与深克隆 浅克隆将一个对象复制后基本数据类型的变量都会重新创建而引用类型指向的还是原对象所指向的。 深克隆将一个对象复制后不论是基本数据类型还有引用类型都是重新创建的。简单来说就是深复制进行了完全彻底的复制而浅复制不彻底。 具体代码如下 import java.io.Serializable;class SerializableObject implements Serializable {private static final long serialVersionUID 1L;
} import java.io.*;public class Prototype implements Cloneable,Serializable {private static final long serialVersionUID 1L;private String string;private SerializableObject obj;/* 浅复制 */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();}public String getString() {return string;}public void setString(String string) {this.string string;}public SerializableObject getObj() {return obj;}public void setObj(SerializableObject obj) {this.obj obj;}
} 到此为止五种创建型模式工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。代码实例完成。转载于:https://www.cnblogs.com/longhaolove/p/7847164.html