设计模式 - 原型模式
定义
Specify the kinds of objects to create using a prototypical instance, and create new objects by copying this prototype.
UML
实例
Clone,DataSet,
- 需要复制对象(结构复杂),但又独立于这些对象所属的具体类。(第三方库的对象)
- 创建特定类型的对象。(初始化方式不同的子类)
比较
原型模式 | 备注 | |
---|---|---|
抽象工厂 | 可以用原型模式生成抽象工厂的类 | |
工厂方法 | 原型不基于继承,对被复制的对象进行复杂的初始化 | 工厂方法基于继承,不需要初始化步骤 |
命令模式 | 原型可以保存命令模式的历史纪录 | |
组合模式 | 通过原型复制复杂结构 | 组合模式的设计,不用从零开始重新构造 |
装饰模式 | 通过原型复制复杂结构 | 装饰模式的设计,不用从零开始重新构造 |
备忘录模式 | 原型可以作为备忘录模式的简化版本 | 当备忘录的历史纪录中存储的对象状态比较简单,不需要链接其他外部资源,或者链接可以方便地重建 |