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 }
  • 相关阅读:
    父子项目
    生成资源文件时候,可以动态替换为maven属性
    生命周期阶段与插件目标任务绑定
    私服
    仓库
    DotNetBar教程
    SQL基础--> 约束(CONSTRAINT)
    jQuery.Autocomplete实现自动完成功能(详解)
    C# 解析JSON格式数据
    JSON 数据格式解析
  • 原文地址:https://www.cnblogs.com/csxcode/p/3696735.html
Copyright © 2011-2022 走看看