策略设计模式
定义一组算法,将每个算法都封装起来,并且使它们之间可以互换
StartegyMode.cpp
#include <iostream>
using namespace std;
class IStrategy {
public:
IStrategy() {}
virtual ~IStrategy() {}
virtual void Discountsfun() = 0;
};
class qxj : public IStrategy {
public:
qxj() {}
~qxj() {}
void Discountsfun() {
cout << "run qxj 20'%' off" << endl;
}
};
class gqj : public IStrategy {
public:
gqj() {}
~gqj() {}
void Discountsfun() {
cout << "run gqj 10'%' off " << endl;
}
};
class Context {
public:
Context(IStrategy *IStrategy) { pIStrategy = IStrategy; }
~Context() { delete pIStrategy; }
void run() {
pIStrategy->Discountsfun();
}
private:
IStrategy *pIStrategy;
};
// g++ StartegyMode.cpp -o StartegyMode
int main(int argc, char*argv[])
{
Context context1(new qxj());
context1.run();
Context context2(new gqj());
context2.run();
return 0;
}