zoukankan      html  css  js  c++  java
  • 设计模式--原型模式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注意事项

    构造函数将不被执行

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

  • 相关阅读:
    学校的破网,你别再掉了
    PhotoShop SDK的获取
    我的C++博客开张了
    一个新的嵌入式门户
    试用Bloglines.com
    PhotoShop的插件体系
    VB6 to VB.NET Migration Guide Community Preview #4
    看看Microsoft都买了些什么
    Borland CTO辞职
    PhotoShop插件的开发
  • 原文地址:https://www.cnblogs.com/lang5230/p/5324428.html
Copyright © 2011-2022 走看看