码迷,mamicode.com
首页 > 其他好文 > 详细

开闭原则

时间:2020-03-21 16:22:03      阅读:60      评论:0      收藏:0      [点我收藏+]

标签:def   div   通过   直接   new   work   virtual   warning   函数   

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

#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那一块注意对象名,用完之后得释放内存。

开闭原则

标签:def   div   通过   直接   new   work   virtual   warning   函数   

原文地址:https://www.cnblogs.com/strangemonkey/p/12539769.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!