zoukankan      html  css  js  c++  java
  • Prototype 模式

    Prototype 模式提供了一个通过已存在对象进行新对象创建的接口(Clone) ,Clone()实现和具体的实现语言相关,在 C++中我们将通过拷贝构造函数实现之。

    ////////////////Prototype.h///////
    #ifndef _PROTOTYPE_H_
    #define _PROTOTYPE_H_
    class Prototype
    {
    public:
        virtual ~Prototype();
        virtual Prototype* Clone() const = 0 ;
    protected:
        Prototype();
    private:
    };
    
    class ConcretePrototype : public Prototype
    {
    public:
        ~ConcretePrototype();
        ConcretePrototype();
        ConcretePrototype(const ConcretePrototype& cp);
        Prototype* Clone() const;
    protected:
    private:
    };
    
    
    #endif
     1 ////////////////Prototype.cpp///////
     2 #include "Prototype.h"
     3 #include <iostream>
     4 using namespace std;
     5 
     6 
     7 Prototype::~Prototype()
     8 {
     9 
    10 }
    11 Prototype::Prototype()
    12 {
    13 
    14 }
    15 Prototype* Prototype::Clone() const
    16 {
    17     return 0;
    18 }
    19 ConcretePrototype::~ConcretePrototype()
    20 {
    21 
    22 }
    23 ConcretePrototype::ConcretePrototype()
    24 {
    25     cout<<"创建一个对象"<<endl;
    26 }
    27 ConcretePrototype::ConcretePrototype(const ConcretePrototype& cp)
    28 {
    29     cout<<"复制原型"<<endl; 
    30 }
    31 Prototype* ConcretePrototype::Clone() const
    32 {
    33     return new ConcretePrototype(*this);
    34 }
     1 ////////////////main.cpp///////
     2 #include "Prototype.h"
     3 #include <iostream>
     4 using namespace std;
     5 
     6 int main()
     7 {
     8     Prototype* p = new ConcretePrototype();
     9     Prototype* p1 = p->Clone();
    10     Prototype* p2 = p1->Clone();
    11 
    12     system("pause");
    13     return 0 ;
    14 }
  • 相关阅读:
    c# DataTable 转为 List 类型
    .net配置文件读取
    文件重命名(递归)
    sharepoint 网站创建
    Sharepoint添加顶部导航菜单
    .net sharepoint文档库操作
    c#下载共享文件夹下的文件并记录错误日志
    JS命名空间实例
    js时间处理函数
    模块
  • 原文地址:https://www.cnblogs.com/csxcode/p/3696735.html
Copyright © 2011-2022 走看看