zoukankan      html  css  js  c++  java
  • 简单工厂模式

    1       简单工厂模式

    1.1     问题

    用任意一种面向对象语言实现一个计算器控制程序,要求输入两个数和运算符号,得到结果。

    1.2     知识点

    • 命名要规范,有意义
    • 可维护性、可复用性、可扩展性
    • 避免重复代码,重复代码用函数或宏等
    • 计算和显示分开
    • 模块划分要合理
    • 保证修改无关性(修改一个方面就不造成另一方面的损失)

    1.3     简单工厂模式

    1.3.1  说明

    简单工厂模式由一个工厂对象决定创建出哪一种产品的实例。简单工厂模式是工厂式家庭中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。

    1.3.2  UML

    1.3.3  代码

    #ifndef OPERATOR_H_
    #define OPERATOR_H_

    //基类
    class Operator
    {
    public:
    double m_numberA;
    double m_numberB;

    virtual double GetResult()
    {
    double result=0;
    return result;
    }
    };
    //加法类
    class OperatorAdd:public Operator
    {
    virtual double GetResult()
    {
    return m_numberA+m_numberB;
    }
    };
    //减法类
    class OperatorSub:public Operator
    {
    virtual double GetResult()
    {
    return m_numberA-m_numberB;
    }
    };
    //乘法类
    class OperatorMul:public Operator
    {
    virtual double GetResult()
    {
    return m_numberA*m_numberB;
    }
    };
    //除法类
    class OperatorDiv:public Operator
    {
    virtual double GetResult()
    {
    if(m_numberB==0)
    {
    return 0;
    }
    return m_numberA/m_numberB;
    }
    };
    //工厂类
    class OperatorFactory
    {
    public:
    static Operator *CreateOpreator(char operatorChar)
    {
    Operator *oper=0;
    switch(operatorChar)
    {
    case '+':
    oper=new OperatorAdd();
    break;
    case '-':
    oper=new OperatorSub();
    break;
    case '*':
    oper=new OperatorMul();
    break;
    case '/':
    oper=new OperatorDiv();
    break;
    }
    return oper;
    }
    };
    #endif
    本人新博客网址为:http://www.hizds.com
    本博客注有“转”字样的为转载文章,其余为本人原创文章,转载请务必注明出处或保存此段。c++/lua/windows逆向交流群:69148232
  • 相关阅读:
    scratch资源
    如何把scratch转成一个swf文件或者exe执行文件
    perl的匿名引用
    perl的内置函数scalar
    perl内置特殊变量查询
    Win7中安装Windows PowerShell 3.0
    man-pages项目包含文档的说明
    编译器思维之结合律
    Android中利用jsoup解析html页面
    MVP+Retrofit+RxJava
  • 原文地址:https://www.cnblogs.com/zhangdongsheng/p/2417224.html
Copyright © 2011-2022 走看看