开闭原则:对拓展开放,对修改关闭
一个好的程序,应该易读性强,维护性高,组织结构清晰.
所以后期易于拓展很重要,但是一大段写好的代码,只要测试通过运转良好,就不应该再去修改它.
否则你要从头到尾读一遍代码,才能发现到底哪里出错的话,那就十分的麻烦.
如果你利用多态来做,就能够达到开闭原则的条件.这样你的代码十分利于维护,接下来我们来看一个案例:
你的想法好不好,可以使用多态去实现它,看看是否能够实现.
#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();
}
1 条评论
可以可以了,
我怎么才可以发布投稿文章?