设计模式:原型模式(C++)
详解 C++ 中的原型模式(Prototype Pattern),通过 clone 方法实现对象的复制创建。提供完整代码示例、UML类图及实际应用场景解析,适合设计模式初学者和进阶开发者学习参考。
·
概述
原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式
,它提供了一种创建对象的最佳方式之一。
这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新数据库,以此来减少数据库调用。
类图
以下为 C++ 代码原型的实现方式,与其他(PHP、Java)等不同。例:
class Prototype {
public:
~Prototype() {}
virtual Prototype* clone() = 0;
}
class Person : public Prototype {
Person* clone() {
return new Person(*this);
}
}
class Animal : public Prototype {
Animal* clone() {
return new Animal(*this);
}
}
C++ 代码,父类 Prototype 通过纯虚函数 clone() 进行派生类对象的复制。父类中 clone() 函数的返回值为Prototype*
,而子类为 Person*
,Animal*
,利用了 C++ 的协变
特性。
Prototype* p = new Person();
// 此返回值为 Prototype*
p->clone();
Person* p2 = new Person();
// 此返回值为 Person*
p2->clone();
更多精彩文章请访问:技术那些事,更多精彩等着您!
更多推荐
所有评论(0)