大话设计模式9:原型模式
目录
大话设计模式:9.原型模式
原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型实例创建新的对象(实例)。
TL;DR:原型模式通过复制已有的对象,简化重复实例化的过程,快速创建内容相似或相同的对象。
1. 优点
- 减少初始化(构造函数调用)次数,提升性能:不同重新初始化对象,而是动态地获得对象运行时的状态
- 隐藏对象创建细节:不需要知道创建细节,即可从一个对象创建另一个可定制(可修改)的对象
2. 浅复制/浅拷贝 vs 深复制/深拷贝
浅拷贝:只对【值类型】进行逐位复制,对【引用类型】复制引用但不复制引用的对象
深拷贝:复制【引用类型】的对象,并把【引用类型】的变量指向复制得到的新对象
3. 实现细节
通过在类中实现 Clone 接口,返回与自己相同类型的对象即可,对于深拷贝要提前确定深入层数,注意循环引用的问题,一般浅拷贝的方法名为 Clone(),深拷贝的方法名为 Copy()