设计模式--原型模式C++实现

Posted 狼行博客园

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式--原型模式C++实现相关的知识,希望对你有一定的参考价值。

原型模式C++实现

1定义

用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象

2类图

技术分享

3实现

class Prototype

{

protected:

  Prototype();

public:

  virtual Prototype* Clone() const = 0;

  vitual ~Prototype() = 0;

};

class PrototypeClass:public Prototype

{

public:

  PrototypeClass();

  PrototypeClass(const PrototypeClass & cp);

  Prototype* Clone()const

  {return 0;}

};

注:原型模型在C++中的体现关键就在于拷贝构造函数的实现方式。

工厂模式,建造者模式,原型模式都是通过已有类对象来构造新对象,区别在于

工厂模式:侧重批量生产多个相互依赖类的对象

建造者模式:侧重复杂对象的分步骤创建

原型模式:通过复制自身来实现新对象构造

4 应用

优点

性能优良,避免了构造函数的约束。

5使用场景

①资源优化场景,类的初始化需要资源(数据,硬件)比较大

②性能和安全要求,通过new频繁生产时会有数据准备和权限问题

③一个对象多个修改的场景,eg学生信息表格。

6注意事项

构造函数将不被执行

深浅拷贝问题,当类内部含有指针时,需要自己实现深拷贝。

 

以上是关于设计模式--原型模式C++实现的主要内容,如果未能解决你的问题,请参考以下文章

C++实现 原型模式(ProToType)

C++实现 原型模式(ProToType)

c++ 创建型模式-原型模式(Prototype)

设计模式——原型模式

设计模式---原型模式

原型模式--- prototype