结构图
案例;
定义一组算法,将每个算法都封装起来,并使他们之间可以互换。
实现:
class Strategy{
public:
virtual void crypt() = 0;
virtual ~Strategy(){}
};
class AES :public Strategy{
public:
virtual void crypt(){
cout << "AEX加密算法" << endl;
}
~AES(){}
};
class DES :public Strategy{
public:
virtual void crypt(){
cout << "DEX算法" << endl;
}
~DES(){}
};
class Context{
private:
Strategy *strategy;
public:
Context(Strategy *strategy){
this->strategy = strategy;
}
void myOperator(){
strategy->crypt();
}
~Context(){
delete strategy;
}
};
int main(void){
Context *con = new Context(new AES());
con->myOperator();
delete con;
system("pause");
return 0;
}
调试结果: