Prototype模式(原型模式)
问题:
对于复杂对象或大量同类的对象,每次产生对象的时候,都要从头开始,耗时耗力
作用:
以一个对象为蓝本,在需要另外对象的时候,复制出新的对象。减少重新创建的过程,
减少时间和重复的执行逻辑,提高程序的运行效率
原型模式实现的种类:
浅拷贝:复制值类型的成员变量,不复制引用类型的成员变量(只复制引用)
深拷贝:值类型和引用类型的成员变量都复制
步骤:
一、浅拷贝实现:
1、创建原型类,实现Cloneable接口
2、在原型类中添加一个方法
public Object clone(){
return super.clone();
}
二、深拷贝实现
1、每个原型类同浅拷贝一样实现
2、在需要深拷贝的原型类的clone方法中,除了调用自己的super.clone()方法外,
还需要调用自己引用对象的clone方法,将生成的对象,设置到自己clone后对象的
成员变量中
三、深拷贝实现
1、给每个原型类实现Serialiazable接口
2、将对象序列化到输出流中,再从输入流中序列化回来