您的位置:首页 > 其它

策略模式(行为类模式)

2017-10-25 22:33 344 查看
结构图



案例;

定义一组算法,将每个算法都封装起来,并使他们之间可以互换。

实现:

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;
}


调试结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  class 算法 结构