原型模式(Prototype)
一、概述
原型模式属于对象创建模式,通过给出一个原型对象来指明所要创建的对象类型,然后用复制这个对象的方法创建出更多同类型的对象。
二、结构
1、简单形式
Client:提出创建对象的请求
Prototype:抽象角色,给出所有具体原型类所需的接口
ConcretePrototype:被复制的对象
2、登记形式
PrototypeManager:创建并记录具体对象
三、浅克隆与深克隆
浅克隆:仅做refrence一级的克隆,refrence所指的对象不被克隆
深克隆:将refrence所指的对象进行递归克隆,需考虑克隆深度及循环克隆问题
四、动机
替换较复杂的等级结构的工厂方法
五、优缺点
- 允许动态地增加或减少产品类,且对整个现有的产品结构没有影响
- 提供简化的创建结构
- 具有动态加载新功能的能力
- 产品类不需要有确定的等级结构
- 每一个类必须配备一个克隆方法