zoukankan      html  css  js  c++  java
  • 设计模式 之 《原型模式》

    GOOD:从一个对象再创建另外一个可定制的对象,而无需知道任何创建的细节。并能提高创建的性能。 

    说白了就COPY技术,把一个对象完整的COPY出一份。

    #ifndef __PROTOTYPE_MODEL__
    #define __PROTOTYPE_MODEL__
    
    #include <iostream>
    #include <string>
    using namespace std;
    
    class Prototype
    {
    private:
        string m_strName;
    
    public:
        Prototype(string strName){ m_strName = strName; }
        Prototype(){ m_strName = ""; }
        void show(){ cout<<m_strName<<endl; }
    
        virtual Prototype* clone() = 0;
    };
    
    // class ConcretePrototype1 
    class ConcretePrototype1 : public Prototype
    {
    public:
        ConcretePrototype1(string strName) : Prototype(strName){}
        ConcretePrototype1(){}
    
        virtual Prototype* clone()
        {
            ConcretePrototype1* p = new ConcretePrototype1();
            *p = *this;      //复制对象
            return p;
        }
    };
    
    // class ConcretePrototype2 
    class ConcretePrototype2 : public Prototype
    {
    public:
        ConcretePrototype2(string strName) : Prototype(strName){}
        ConcretePrototype2(){}
    
        virtual Prototype* clone()
        {
            ConcretePrototype2* p = new ConcretePrototype2();
            *p = *this;      //复制对象
            return p;
        }
    };
    
    #endif //__PROTOTYPE_MODEL__
    
    /* 《客户端》
    #include "PrototypeModel.h"
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        ConcretePrototype1* test = new ConcretePrototype1("小王");
        ConcretePrototype2* test2 = (ConcretePrototype2*)test->clone();
        test->show();
        test2->show();
    
        return 0;
    }
    */
  • 相关阅读:
    搜狗输入法--评价
    课堂练习--找水王
    学习进度条---第十二周
    Java接口与继承动手动脑
    Java数组课后作业
    Java语言String字符串课后作业
    Java类和对象课后作业
    Java语言第四讲
    Java语法基础----课后实践作业
    Java课堂作业-------参数求和
  • 原文地址:https://www.cnblogs.com/MrGreen/p/3398327.html
Copyright © 2011-2022 走看看