C++设计模式之Prototype(原型)模式

/ 0评 / 0

Published by orzz.org(). (http://orzz.org/c%e8%ae%be%e8%ae%a1%e6%a8%a1%e5%bc%8f%e4%b9%8bprototype%e5%8e%9f%e5%9e%8b%e6%a8%a1%e5%bc%8f/)

当我们需要创建一种类型的对象时,可以用工厂模式;当对象的局部容易发生变化时,我们有建造者模式.但当我们有大量的对象类型,或者对象类型不易知道时,我们如何根据已有的一个对象快速构建新的对象呢?

我们需要一个可以封装掉不同种类对象之间的区别,仅伸出相同的克隆接口,让所有的对象只需要考虑自身的复制.这样我们就可以快速得到大量相同类型的对象了.

具有这种特征的模式是原型模式.其类图如下:

下面给出原型模式的C++示例:

代码运行结果如下:

原型模式可以很方便的快速构建相同类型的对象.其构造过程有点类似细胞分裂.通过原型模式的克隆接口克隆对象,我们可以完全不关心待克隆对象本身的类型,只需要调用接口就可以产生一个新的同类对象.

Published by orzz.org(). (http://orzz.org/c%e8%ae%be%e8%ae%a1%e6%a8%a1%e5%bc%8f%e4%b9%8bprototype%e5%8e%9f%e5%9e%8b%e6%a8%a1%e5%bc%8f/)

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据