美文网首页
策略模式

策略模式

作者: 钟离惜 | 来源:发表于2020-11-02 11:03 被阅读0次

    策略模式是最简单的一种模式,就是根据不同子类的需求改写父类的接口实现各自的特性。

    示例代码

    #include <iostream>
    using namespace std;
    
    
    class ICalculate
    {
    public:
        virtual void Calculate(int a, int b) = 0;
    };
    class CalculateAdd: public ICalculate
    {
    public:
        virtual void Calculate(int a, int b) { cout << (a + b) << endl; }
    };
    class CalculateSubtract : public ICalculate
    {
    public:
        virtual void Calculate(int a, int b) { cout << (a - b) << endl; }
    };
    class CalculateMultiply : public ICalculate
    {
    public:
        virtual void Calculate(int a, int b) { cout << (a * b) << endl; }
    };
    class CalculateDivide : public ICalculate
    {
    public:
        virtual void Calculate(int a, int b)
        {
            if (b)
                cout << (a / b) << endl;
            else
                cout << 0 << endl;
        }
    };
    
    int main()
    {
        ICalculate* calculate = new CalculateAdd;
        calculate->Calculate(10, 10);
        delete calculate;
        calculate = new CalculateSubtract;
        calculate->Calculate(10, 10);
        delete calculate;
        calculate = new CalculateMultiply;
        calculate->Calculate(10, 10);
        delete calculate;
        calculate = new CalculateDivide;
        calculate->Calculate(10, 10);
        delete calculate;
        calculate = NULL;
        return 0;
    }
    }
    

    相关文章

      网友评论

          本文标题:策略模式

          本文链接:https://www.haomeiwen.com/subject/lhlxvktx.html