Version: Next

原型模式 Prototype

定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。

源发问题

当数量稳定的对象可装配成状态多样的组合对象时,如果采用类定义的方式,则会出现类急速增长或平行类现象

解决方案

用若干稳定原型对象进行克隆并装配组成对象。

UML类图

image-20200331205555888

代码

优缺点

  • 优点: 用统一的接口克隆对象,然后装配成组合对象,避免类数量急剧增长和平行类问题产生的同时,也体现了开闭原则;另外,组合对象时由克隆的对象装配而成,这意味着各组合对象之间彼此状态是相互独立的
  • 缺点: 如果克隆对象本身也是一个组合对象,进行克隆操作时,构件对象时克隆(深拷贝)还是共享需要进行慎重权衡