zoukankan      html  css  js  c++  java
  • 设计模式学习Prototype(原型)

    意图:用原型示例指定创建对象的种类,通过拷贝这些原型创建新的对象

    适用性:

    当实例化的类是在运行时指定时

    为了避免创建一个与产品类平行的工厂类

    当一个类的示例只能有几个不同状态组合中的一种时

    示例图:

    image

    示例代码:

    #pragma once

    //孙悟空一变二二变四…

    class CMonkeyKing
    {
    public:
        CMonkeyKing(int i);
    public:
        ~CMonkeyKing(void);
        public:
        void Display()
        {
            if(m_i==0)
            {
                _tprintf(_T("Stone monkey/n"));
            }   
            if(m_i ==1)
            {
            _tprintf(_T("qitiandasheng/n"));
            }
            else
            {
                _tprintf(_T("other status/n"));
            }
        }
        public:
        CMonkeyKing* Clone()
        {
            return new CMonkeyKing(*this);
        }
        private:
        int m_i;
    };

    CMonkeyKing** kings = new CMonkeyKing*[100];
        CMonkeyKing stonKing(0);
        CMonkeyKing qitianKing(1);
        CMonkeyKing otherKin(-1);
        for(int i=0;i<100;i++)
        {
            if(i%3==0)
            {
                kings[i] = stonKing.Clone();
            }
            else if(i%3==1)
            {
                kings[i] = qitianKing.Clone();
            }
            else
            {
                kings[i] = otherKin.Clone();
            }
        }
        //CMonkeyKing* pTemp = *kings;
        for(int j=0;j<100;j++)
        {
            kings[j]->Display();
        }

  • 相关阅读:
    TCP/IP,Http,Socket,XMPP的区别
    CygWin 常用命令
    js打印数组,js打印对象的方法
    中奖概率算法(php 可用于刮刮卡,大转盘等抽奖算法)
    sql语句优化
    求职简历怎么写,看看百度吐槽
    c#学习笔记之WPF Application和Windows Form Applications
    c#学习笔记之XML
    c#学习笔记之LINQ
    c#学习笔记之字符串和正则表达式
  • 原文地址:https://www.cnblogs.com/SkyMouse/p/2340730.html
Copyright © 2011-2022 走看看