开闭原则

在实际代码中,为提高代码的可复用性(后期不用动),可维护性(后期不用改源代码),通过一个抽象类来定义,借助虚函数来定义不同的继承对象。

#define  _CRT_SECURE_NO_WARNINGS 
#include <iostream>

using namespace std;


//抽象类
class AbstractBanker
{
public:
    virtual void work() = 0; //抽象的接口
};

//存款
class SaveBanker:public AbstractBanker
{
public:
    virtual void work() {
        cout << "存款" << endl;
    }
};

//支付
class PayBanker:public AbstractBanker
{
public:
    virtual void work() {
        cout << "支付" << endl;
    }
};

//转账
class TransBanker:public AbstractBanker
{
public:
    virtual void work() {
        cout << "Trans" << endl;
    }
};

//添加一个办理基金的功能
class FuncBanker :public AbstractBanker
{
public:
    virtual void work() {
        cout <<"基金"<<endl;
    }
};


#if 0
class Banker
{
public:
    void save() {
        cout << "存款" << endl;
    }
    void pay() {
        cout << "支付" << endl;
    }
    void transfer() {
        cout << "转账" << endl;
    }


    //添加一个办理基金业务
    void fund() {
        cout << "办理基金" << endl;
    }
};
#endif

int main(void)
{
#if 0
    Banker b;

    //存款
    b.save();
    b.transfer();
#endif

    AbstractBanker *sb = new SaveBanker;
    sb->work();
    delete sb;

    AbstractBanker *tb = new TransBanker;
    tb->work();
    delete tb;

    return 0;
}

上述代码中,后期如果程序员想在类中加一个方法,就不用改动源代码。直接写个继承类即可。

注意:开辟内存new那一块注意对象名,用完之后得释放内存。

posted @ 2020-03-21 16:03  撑雨伞的小男孩  阅读(122)  评论(0编辑  收藏  举报