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;
    }
  • 相关阅读:
    python基础 条件和循环
    git基本使用(搭建Git服务器)
    面试题整理
    node nvm npm nrm 安装
    onmouse事件
    webpack
    web前端UI框架
    javascript cookie
    三大家族,offset,scroll,client
    clientTop,scrollTop,兼容
  • 原文地址:https://www.cnblogs.com/leijiangtao/p/4534667.html
Copyright © 2011-2022 走看看