软件的设计模式中,有个开闭原则(Open-Closed Principle,OCP),用的比较多种。下面介绍它。
一、开闭原则的定义
类的改变是通过增加代码进行的,而不是修改源代码;
二、案例
1.1 原设计 ver1.1
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
class Banker
{
public:
void save(){
cout << "save" << endl;
}
void trans(){
cout << "trans" << endl;
}
void pay(){
cout << "pay" << endl;
}
};
int main(void)
{
Banker bk;
bk.trans();
bk.save();
return 0;
}
1.2 加入了开闭原则的设计 ver1.2
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
class AbstractBanker
{
public:
virtual void busi() = 0;
};
class SaveBanker :public AbstractBanker
{
public:
virtual void busi(){
cout << "save" << endl;
}
};
class TransBanker :public AbstractBanker
{
public:
virtual void busi(){
cout << "Trans" << endl;
}
};
class PayBanker :public AbstractBanker
{
public:
virtual void busi(){
cout << "save" << endl;
}
};
int main(void)
{
AbstractBanker *saveBanker = new SaveBanker;
saveBanker->busi();
delete saveBanker;
return 0;
}
版本ver1.2 比ver1.1代码的可维护性、可扩展性要好。