设计模式:原型模式

我的梦境 提交于 2019-12-16 10:54:50

原型模式

原型设计(prototype)用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。原型其实就是从一个对象再创建另外一个可定制的对象,动态地获取对象运行状态,而且不需知道任何创建的细节。原型模式:制作简历实现

实际应用示例:

知乎上看到的对原型模式的意义的解释:

Prototype 的意义在于,你拿到一个 Base* ,它指向某个 Derived 对象,你想克隆出 Derived 对象,但代码中不写出 Derived 的具体类型,因为有很多派生类,这种情况下你用构造函数是搞不定的,type-switch 是 bad smells 。

另外,这里考虑 virtual 的性能损失是主次不分,构造对象需要分配内存,这开销比一次虚函数调用大多了。

优点

  • 一般在初始化不发生变化时,克隆是最好的办法。既可以隐藏对象初始化细节,而且可以大大提高性能。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!