当前位置: 首页 > news >正文

济南行知网站建设创意专业网站建设

济南行知网站建设,创意专业网站建设,遵义高端网站建设,摄影建设网站作者#xff1a;翟天保Steven 版权声明#xff1a;著作权归作者所有#xff0c;商业转载请联系作者获得授权#xff0c;非商业转载请注明出处 一、策略模式是什么#xff1f; 策略模式是一种行为型的软件设计模式#xff0c;针对某个行为#xff0c;在不同的应用场景下翟天保Steven 版权声明著作权归作者所有商业转载请联系作者获得授权非商业转载请注明出处 一、策略模式是什么 策略模式是一种行为型的软件设计模式针对某个行为在不同的应用场景下有不同的实现算法并且可以互相替换。比如两军交战军队会采用不同的阵法、策略、兵法应对不同的战况。 策略模式的优点 便于管理算法族。一套策略对应一套算法该模式可以很好地进行维护和管理。避免使用多重条件语句如if else和switch。庞大的系统中过多的多重条件语句会让代码显得臃肿和不易维护提高出错概率。封装算法。提高了算法的保密性和安全性。符合开闭原则。策略模式的缺点 客户端需要了解每种策略并自行决定何时何地使用何种策略。随着策略增多策略类数量增加要注意对类的维护。二、策略模式 2.1 结构图 客户端即Main主函数根据不同场景选用不同策略。 2.2 代码示例 场景描述我有一支军队先让其使用火攻震慑对方再用离间策反敌人。 //Strategy.h /****************************************************/ #pragma once #include iostream #include unordered_map #include vector #include listusing namespace std;// 策略类型 enum WARCRAFT_TYPE {FIREATTACK, // 火攻SOWDISCORD, // 离间 };// 定义策略接口-兵法 class Warcraft { public:// 执行virtual void execute() 0; };// 实现具体策略类-火攻 class FireAttack : public Warcraft { public:// 执行virtual void execute() {cout 执行火攻 endl;} };// 实现具体策略类-离间 class SowDiscord : public Warcraft { public:// 执行virtual void execute() {cout 执行离间 endl;} };// 背景类-军队 class Army { public:// 构造函数Army(WARCRAFT_TYPE type){setWarcraft(type);}// 析构函数~Army() {if(m_warcraft) {delete m_warcraft;m_warcraft nullptr;}}// 设置策略void setWarcraft(WARCRAFT_TYPE type) {// 清空旧策略if (m_warcraft) {delete m_warcraft;m_warcraft nullptr;}// 使用新策略switch (type){case FIREATTACK:m_warcraft new FireAttack();break;case SOWDISCORD:m_warcraft new SowDiscord();break;default:cout 没有该策略。 endl;break;}}// 执行兵法void executeWarcraft() {cout 准备 endl;m_warcraft-execute();cout 结束 endl;}private:Warcraft* m_warcraft; }; //main.cpp /****************************************************/ #include iostream #include string #include Strategy.husing namespace std;int main() {Army *army new Army(FIREATTACK);army-executeWarcraft();army-setWarcraft(SOWDISCORD);army-executeWarcraft();delete army;army nullptr;return 0; } 程序结果如下。 策略模式的实现有很多种我是采用了枚举的形式将具体策略的创建放在了环境类中类中new别忘了delete也可以在客户端创建策略再将策略指针传入环境类。 三、总结 我尽可能用较通俗的话语和直观的代码例程来表述我对策略模式的理解或许有考虑不周到的地方如果你有不同看法欢迎评论区交流希望我举的例子能帮助你更好地理解策略模式。 如果文章帮助到你了可以点个赞让我知道我会很快乐~加油
http://www.tj-hxxt.cn/news/140801.html

相关文章:

  • 智慧团建网站登录密码是啥汕头微信推广平台
  • 网站需要兼容哪些浏览器网站建设原因
  • 阳江营销网站开发游戏攻略网站开发
  • wordpress采集站源码承德房地产网站建设
  • 惠州住房和城乡建设厅网站wordpress code 样式
  • 互联网创业项目整合网站wordpress 获取副标题
  • 怎么把网站生成二维码世界500强
  • 怎么知道网站的空间是谁做的浙江省建设局教育网站
  • 学会建设网站必要性163免费邮箱入口
  • 旅游网站效果图网站网页栅格化
  • 搜索企业信息的网站如何做同城信息网站
  • 锚文本外链网站在线制作电子公章免费公章在线生成
  • 南昌网站设计案例现在能不能去北京
  • 二级网站建设 管理思路wordpress邀请码计数
  • 汉字域名网站建众智业公司简介
  • 长沙手机网站设计公司破解软件库合集资料网址大全
  • 网站制作前需要进行规划设计电商运营学习网站
  • 如何申请自己的网站空间美食网站设计风格
  • seo建站微信表情制作小程序
  • 网站建设中请稍后再访问免费一级域名申请
  • 枣庄手机网站建设建免费的网站吗
  • 用什么开源框架做网站微信营销不属于下面哪种营销方式
  • 网站开发系统流程图做股东变更要上哪个网站
  • 北京网页设计公司网站网页设计作业怎么做网站
  • 深圳网站制作费用多少国家级建设网站
  • 建立网站怎么搞建设了湛江市志愿服务网站
  • 高端制作网站公司建站seo怎么赚钱
  • 昆明做网站报价简单网页设计模板网站
  • 外包做网站一般多少钱wordpress 自定义表单
  • 做视频网站付费版品牌公关