class Strategy {
public:
virtual void crypt() = 0;
};
class AES :public Strategy{
public:
virtual void crypt() {
cout << "AES加密算法" << endl;
}
};
class DES :public Strategy {
public:
virtual void crypt() {
cout << "DES加密算法" << endl;
}
};
class Context {
public:
void setStrategy(Strategy *strategy) {
this->strategy=strategy;
}
void Operator()
{
strategy->crypt();
}
private:
Strategy *strategy;
};
void main() {
Strategy *des = new DES;
des->crypt();
delete des;
Strategy *des1 = new DES;
Strategy *des2 = new AES;
Context *context = new Context;
context->setStrategy(des1);
context->Operator();
delete context;
delete des1;
system("pause");
}