1、问题场景
场景:C++中常用的拷贝构造,实现复制一个相同的自己。
问题:拷贝存在深拷贝和浅拷贝,怎么样实现新对象的创建可以通过已有对象进行创建。
2、解决办法
原型模式:用原型实例指定创建对象的种类,通过拷贝实现新对象的创建。它的呈现形式:Java中提供方法Clone(),C++中通过拷贝构造函数。
UML图:
优缺点:符合“开闭原则”,类似于工厂模式,不同点是增加了自我复制。每个原型必须有一个恶克隆的方法,同时碰到一些内部不支持copy的或循环引用对象,会变得相当麻烦。
---------------------------------------------------------------------------
Name:一个奔跑中的loser
E-mail:chenfeiyoucan@163.com
_________________________________________