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

    1】什么是简单工厂模式?
    
    核心思想:用一个工厂来根据输入的条件产生不同的类,然后根据不同类的virtual函数得到不同的结果。
    
    理解:根据条件生成不同的实例。利用多态的特性,调用同名方法,不同的实例将得到不同的结果。
    
    【2】代码示例如下:
    
    代码如下:
    #include <iostream>
    #include <string>
    using namespace std;
    
    /*
     * 运算基类
     */
    class Operation
    {
    public:
        double numberA;
        double numberB;
    public:
        virtual double  getResult()
        {
            return 0;
        }
    };
    
    /*
     * 加法运算子类
     */
    class addOperation : public Operation
    {
        double getResult()
        {
            return numberA + numberB;
        }
    };
    
     /*
      * 减法运算子类
      */
    class subOperation : public Operation
    {
        double getResult()
        {
            return numberA - numberB;
        }
    };
    
     /*
      * 乘法运算子类
      */
    class mulOperation : public Operation
    {
        double getResult()
        {
            return numberA * numberB;
        }
    };
    
     /*
      * 除法运算子类
      */
    class divOperation : public Operation
    {
        double getResult()
        {
            return numberA / numberB;
        }
    };
    
     /*
      * 简单构建工厂
      */
    class operFactory
    {
    public:
        static Operation *createOperation(char c)
        {
            switch (c)
            {
            case '+':
                return new addOperation;
                break;
            case '-':
                return new subOperation;
                break;
            case '*':
                return new mulOperation;
                break;
            case '/':
                return new divOperation;
                break;
            default:
                break;
            }
        }
    };
    
     /*
      * 客户端应用示例
      */
    void main()
    {
        Operation *oper = operFactory::createOperation('+');
        oper->numberA = 9;
        oper->numberB = 99;
        cout << oper->getResult() << endl;
    }
  • 相关阅读:
    Java 读取大容量excel
    Linux 安装mysql
    Linux 配置nginx
    java 微信H5支付
    微信公众号授权登录两种方式
    Jsoup 获取页面返回的table中的内容
    Python Model执行迁移数据库失败
    java上传txt文件,出现中文乱码
    在Window环境下,使用Django shell 命令查询数据库
    Java模拟form表单提交普通参数和文件
  • 原文地址:https://www.cnblogs.com/leijiangtao/p/4534667.html
Copyright © 2011-2022 走看看