• 设计模式C++描述----08.原型(Prototype)模式


    一. 概述

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

    换句话说,就是不用重新初始化对象,而是动态地获得对象运行时的状态

    再说明白点,就是要一个拷贝过构造函数类似功能的接口

    结构图如下:

    代码如下:

    1. //原型类,有一个clone接口  
    2. class Prototype  
    3. {  
    4. public:  
    5.     virtual ~Prototype() {}  
    6.       
    7.     virtual Prototype* Clone() const = 0;  
    8. };  
    9.   
    10. //具体原型类,实现一个clone自身的操作  
    11. class ConcretePrototype:public Prototype  
    12. {  
    13. public:  
    14.     ConcretePrototype() {}  
    15.       
    16.     //拷贝构造函数  
    17.     ConcretePrototype(const ConcretePrototype& cp)  
    18.     {  
    19.         cout<<"ConcretePrototype copy ..."<<endl;  
    20.     }  
    21.       
    22.     //克隆接口  
    23.     Prototype* Clone() const  
    24.     {  
    25.         return new ConcretePrototype(*this);  
    26.     }  
    27. };  
    28.   
    29.   
    30. //测试代码  
    31. int main(int argc,char* argv[])  
    32. {  
    33.     //拷贝构造操作  
    34.     ConcretePrototype p1;  
    35.     ConcretePrototype p2 = p1;  
    36.   
    37.     //克隆操作  
    38.     Prototype* p3 = new ConcretePrototype();  
    39.     Prototype* p4 = p3->Clone();  
    40.       
    41.     return 0;  
    42. }  

    二. 说明

    1. Prototype 模式的关键就是(C++中)拷贝构造函数的实现方式,这也是C++实现技术层面上的事情。

    2. 示例代码中不涉及到深层拷贝(主要指有指针、复合对象的情况),主要在于体现Prototype模式的思想。

  • 相关阅读:
    第一次个人作业-热身
    OO总结
    oo第三单元总结
    oo第二单元总结
    软件工程 —— 课程回顾与个人总结
    BUAA软件案例分析——智能表单抽取识别
    软件工程—结对项目博客
    轨迹预测文献阅读整理(轨迹多样性、车辆轨迹、图神经网络、潜码)
    软件工程
    软件工程
  • 原文地址:https://www.cnblogs.com/any91/p/3247989.html
Copyright © 2020-2023  润新知