Version: Next
原型模式 Prototype
定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
源发问题
当数量稳定的对象可装配成状态多样的组合对象时,如果采用类定义的方式,则会出现类急速增长或平行类现象
解决方案
用若干稳定原型对象进行克隆并装配组成对象。
UML类图
代码
优缺点
- 优点: 用统一的接口克隆对象,然后装配成组合对象,避免类数量急剧增长和平行类问题产生的同时,也体现了开闭原则;另外,组合对象时由克隆的对象装配而成,这意味着各组合对象之间彼此状态是相互独立的
- 缺点: 如果克隆对象本身也是一个组合对象,进行克隆操作时,构件对象时克隆(深拷贝)还是共享需要进行慎重权衡