设计模式:原型模式
2024-01-03 13:26:58
定义
原型模式(Prototype Pattern)是一种创建型设计模式,它允许通过复制现有的对象来创建新对象,而无需从头开始编写代码。在这个模式中,我们可以使用已经存在的对象作为“原型”,并通过克隆该原型对象创建一个新的对象,而不是从头开始构建一个新对象。
该模式主要由以下几个角色组成:
- 抽象原型类:定义了用于克隆自身的抽象方法。
- 具体原型类:实现了抽象原型类所定义的克隆方法。
- 客户端:使用具体原型类的克隆方法来创建新的对象。
该模式的核心思想是将对象的创建过程与使用过程分离,通过复制已有对象来减少对象的创建过程,从而提高系统的性能和效率。
代码实现
#include <iostream>
using namespace std;
// 抽象原型类
class Prototype {
public:
virtual Prototype* clone() = 0;
};
// 具体原型类
class ConcretePrototype : public Prototype {
public:
Prototype* clone() {
return new ConcretePrototype(*this);
}
};
// 客户端
int main() {
Prototype* prototype = new ConcretePrototype();
Prototype* clone1 = prototype->clone(); // 克隆对象1
Prototype* clone2 = prototype->clone(); // 克隆对象2
delete prototype;
delete clone1;
delete clone2;
return 0;
}
使用场景
在实际应用中,原型模式常常被应用于大量相似对象的创建,如数据库连接池、线程池等场景中,且很多软件提供的复制(Ctrl+C)和粘贴(Ctrl+V)操作就是原型模式的典型应用。
文章来源:https://blog.csdn.net/weixin_40179091/article/details/135361037
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!