23种设计模式(Prototype模式)

来源:互联网 发布:选择c#还是java 编辑:程序博客网 时间:2024/04/29 04:42

1、问题场景

场景:C++中常用的拷贝构造,实现复制一个相同的自己。
问题:拷贝存在深拷贝和浅拷贝,怎么样实现新对象的创建可以通过已有对象进行创建。

2、解决办法

原型模式:用原型实例指定创建对象的种类,通过拷贝实现新对象的创建。它的呈现形式:Java中提供方法Clone(),C++中通过拷贝构造函数。

UML图:


优缺点:符合“开闭原则”,类似于工厂模式,不同点是增加了自我复制。每个原型必须有一个恶克隆的方法,同时碰到一些内部不支持copy的或循环引用对象,会变得相当麻烦。

---------------------------------------------------------------------------

Name:一个奔跑中的loser

E-mailchenfeiyoucan@163.com

_________________________________________



0 0
原创粉丝点击