设计模式-原型模式

本文详细介绍了原型模式的设计意图,即通过复制原型实例来创建新对象,避免了传统构造过程的开销。通过C++代码示例,展示了如何实现原型模式,包括抽象类Person的定义,以及具体类MingRen的实现,最后通过main函数演示了如何使用原型模式克隆对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原型模式结构图

意图:用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。

其中:

  • Prototype声明一个复制自身的接口。
  • ConcretePrototype实现一个复制自身的操作。
  • Client让一个原型复制自身从而创建一个新的对象。 

应用举例 

 火影鸣人,多重影分身之术。

#include <iostream>
using namespace std;

//抽象类人
class Person
{
public:
	virtual Person *Clone() = 0;
};

class MingRen : public Person
{
public:
	MingRen() {};
	~MingRen() {};
	MingRen(const MingRen& other) {};
	virtual Person *Clone()
	{
		//调用拷贝构造函数
		return new MingRen(*this);
	}
};

int main()
{
	Person *person = new MingRen();

	//克隆人
	Person *m1 = person->Clone();
	Person *m2 = person->Clone();

	getchar();
	return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

灬Sunnnnn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值