开闭原则:对拓展开放,对修改关闭

一个好的程序,应该易读性强,维护性高,组织结构清晰.

所以后期易于拓展很重要,但是一大段写好的代码,只要测试通过运转良好,就不应该再去修改它.

否则你要从头到尾读一遍代码,才能发现到底哪里出错的话,那就十分的麻烦.

如果你利用多态来做,就能够达到开闭原则的条件.这样你的代码十分利于维护,接下来我们来看一个案例:

你的想法好不好,可以使用多态去实现它,看看是否能够实现.

#include<iostream>
#include<string>
using namespace std;

class Calculation {
public:
    virtual int GetRes() {  //虚函数,允许子类重写
        return 0;
    }
    int C_num1;
    int C_num2;
};

class ADD_Cal :public Calculation {
    int GetRes() {      //重写虚函数
        return C_num1 + C_num2;
    }
};

class SUB_Cal :public Calculation {
    int GetRes() {      //重写虚函数
        return C_num1 - C_num2;
    }
};

//之后的日子里,你想在这里写什么乘法除法开根取余都很方便

void test() {
    Calculation *cal = new ADD_Cal;  //创建一个指针更方便调用,这里创建的是加法
    cal->C_num1 = 200;
    cal->C_num2 = 100;
    cout << cal->GetRes() << endl;
    delete cal; //别忘了删除cal指向内存里的内容
    //如果现在还想使用别的虚函数功能,依然可以直接更改指针指向
    cal = new SUB_Cal;
    cal->C_num1 = 200;
    cal->C_num2 = 100;
    cout << cal->GetRes() << endl;
    delete cal;//别忘了删除cal指向内存里的内容
}


int main() {
    test();
}



最后修改:2022 年 12 月 05 日
如果觉得我的文章对你有用,请随意赞赏