C++创建型模式之原型模式

C++ 原型模式(Prototype Pattern)

1. 解决的问题

原型模式(Prototype Pattern)是一种创建型设计模式,用于解决对象创建的问题,特别是在需要创建多个相似对象时,避免使用重复的构造代码。原型模式通过复制已有对象(原型)来创建新对象,而不是通过实例化一个类来创建。

2. 适用场景
  • 当系统需要创建多个相似对象,并且这些对象之间的差异只是部分属性值不同。
  • 当对象的创建过程比较复杂,并且通过复制现有对象可以简化创建过程。
  • 当需要避免使用子类的创建方式来生成对象时。
3. 模式的参与者角色
  • Prototype(抽象原型):声明一个克隆自身的接口。
  • ConcretePrototype(具体原型):实现克隆自身的操作。
  • Client(客户端):使用原型对象来克隆新的对象。
4. 示例代码

假设我们正在开发一个复杂的角色扮演游戏(RPG),游戏中有各种不同的角色,这些角色可以是玩家角色(Player)或敌人角色(Enemy)。每个角色都有不同的属性和能力,例如生命值、攻击力、防御力等。为了简化角色的创建过程,我们可以使用原型设计模式来复制现有的角色,并根据需要进行微调。

角色类图
+----------------+
|   Prototype    |
|----------------|
| + clone()      |
| + print()      |
+----------------+
        ^
        |
+----------------+
|    Player      |
|----------------|
| + clone()      |
| + print()      |
+----------------+
        ^
        |
+----------------+
|    Enemy       |
|----------------|
| + clone()      |
| + print()      |
+----------------+

代码
#include 
#include 
#include 
#include 

// Prototype 接口
class Prototype {
public:
    virtual ~Prototype() {}
    virtual std::unique_ptr clone() const = 0;
    virtual

你可能感兴趣的:(软件设计模式,C++,原型模式,设计模式,c++)