目的
指定使用原型实例创建的对象类型,并通过复制此原型来创建新对象。
说明
还记得多莉吗?被克隆的羊!
简而言之,基于现有对象通过克隆创建对象。
维基百科说
原型模式是软件开发中一种创造性的设计模式。当要创建的对象的类型由原型实例确定时,将使用它,该原型实例被克隆以生成新对象。
简而言之,它允许您创建现有对象的副本并根据需要进行修改,而不是从头开始创建对象并进行设置。
程序化示例
在Java中,通过从对象实现可克隆和覆盖克隆,可以很容易地完成。
class Sheep implements Cloneable { |
然后它可以像下面一样克隆
Sheep original = new Sheep("Jolly"); |
适用场景
当系统应独立于其产品的创建,组合和表示方式时,请使用Prototype模式
- 当要在运行时指定要实例化的类时,例如,通过动态加载
- 避免构建与产品类层次结构相似的工厂类层次结构
- 当一个类的实例只能有几个不同的状态组合中的一个时。安装相应数量的原型并克隆它们可能更方便,而不是每次以适当的状态手动实例化类。
- 与克隆相比,对象创建成本高昂