在面对对象程序设计中,有很多原则需要我们去学习,在这里用c++简单的演示一下,开闭原则。开闭原则实质就是对扩展开放、修改封闭。等于说,一个系统需要增加新的功能,是在原有的基础上去扩展,而不是修改已有功能的代码。例如下面的计算器小程序,只实现了加法和减法、后续可以扩展乘除等等。(利用多态的思想,使得程序的可扩展性更强)
// 开闭原则.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include#include #include class Calculate { public: virtual int myCalculate() = 0; }; // 加法 class Add :public Calculate { public: Add(int a,int b) { this->a = a; this->b = b; } virtual int myCalculate() { return a + b; } private: int a; int b; }; // 减法 class Sub:public Calculate { private: int a; int b; public: Sub(int a,int b) { this->a = a; this->b = b; } virtual int myCalculate() { return a - b; } }; // 后续可扩展乘法、除法、取模、开根、平方等等。 int main() { Calculate * p = new Add(10,20); int mAdd = p->myCalculate(); std::cout << mAdd << std::endl; delete p; p = new Sub(10, 2); int mSub = p->myCalculate(); std::cout << mSub << std::endl; delete p; system("pause"); return 0; }
结果: