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

合肥网络公司排行榜网站优化定做

合肥网络公司排行榜,网站优化定做,温州电子商务网站建设,遵义网站制作和推广策略模式 介绍示例示例测试运行结果应用场景优点总结 介绍 策略模式是一种行为设计模式。在策略模式中#xff0c;可以创建一些独立的类来封装不同的算法#xff0c;每一个类封装一个具体的算法#xff0c;每一个封装算法的类叫做策略(Strategy)#xff0c;为了保证这些策… 策略模式 介绍示例示例测试运行结果应用场景优点总结 介绍 策略模式是一种行为设计模式。在策略模式中可以创建一些独立的类来封装不同的算法每一个类封装一个具体的算法每一个封装算法的类叫做策略(Strategy)为了保证这些策略的一致性一般会用一个接口或者抽象类做统一的规定所有的策略类都需要遵守这个接口或者抽象类规定的行为。同时定义一个 Context 类来管理算法的使用通过参数将策略类传递给Context类运行时动态的决定调用那个具体的算法。 示例 有一个小组去参加比赛记分机制是取每组得分的最高分每组得分的最低分还有每组得分的平均分三种计分制下面使用策略模式实现这种记分机制。 #includeiostream #include vector #include algorithm //min_element() #include numeric //accumulate() class Score //得分 { public:virtual ~Score() default;virtual double getScore(vectorint ) 0; };class MaxScore :public Score //最高分数 { public:double getScore(vectorint vec)override {if (vec.empty()){return 0.0;}auto score std::max_element(vec.begin(), vec.end());return *score;} };class MinScore :public Score //最低分数 { public:double getScore(vectorint vec)override {if (vec.empty()){return 0.0;}auto minScore min_element(vec.begin(),vec.end());//algorithmreturn *minScore;} };class AverageScore :public Score //平均分数 { public:double getScore(vectorint vec)override{if (vec.empty()) {return 0.0;}double sum accumulate(vec.begin(),vec.end(),0.0);//numericreturn sum/vec.size();} };class Contenxt { public:Contenxt(const vectorint scores,Score *pScore) :m_pScore(pScore), m_scoreVec(scores){}void setScore(Score *pScore) {m_pScore pScore; }double finalScore(){return m_pScore-getScore(m_scoreVec);} private:Score *m_pScore;vectorint m_scoreVec; }; 示例测试 这里省去头文件 int main() {vectorint scores {2,3,6,2,7,4};Contenxt manager(scores,new MaxScore);double finalScore manager.finalScore();cout finalScore finalScore endl;manager.setScore(new MinScore);double minScore manager.finalScore();cout minscore minScore endl;manager.setScore(new AverageScore);double avgScore manager.finalScore();cout avgScore avgScore endl;return 0; }运行结果 应用场景 在某个系统中需要实现不同的算法并且这些算法可以互相替换。需要根据不同的条件在运行时动态地选择算法。算法的实现代码比较复杂需要将其封装起来使得代码更具可读性。 优点 避免使用过程中出现分支语句提高代码的可维护性和扩展性。 总结 策略模式实际上就是一种多态的应用。
http://www.zqtcl.cn/news/813990/

相关文章:

  • 网站推广公司卓立海创英文网站建设需求
  • 无锡网站营销公司简介最专业网站建设公司首选
  • 中文网站建设小组ios开发者账号申请
  • 月熊志网站福州建网站 做网页
  • 不同的网站有不同的风格宁波设计网站公司
  • 学校网站制作平台电子政务门户网站建设代码
  • 产品推广的网站怎么做网站标题与关键词
  • 青蛙网站建设wordpress修改logo
  • 网站套餐方案引擎搜索对人类记忆的影响
  • 滨州市滨城区建设局网站扎金花网站怎么做
  • 网站开发中视屏怎样编辑到网页上常州建站公司模板
  • 视频涉台互联网网站怎么做1cpu0.5g服务器用来做网站
  • 营销型网站设计官网怎么做网站优化 sit
  • 怎样获得做网站的客户免费企业网站程序上传
  • 新闻排版设计用什么软件网站seo诊断分析
  • 手机网站端域名怎样做解析一诺摄影设计
  • 网站开发行业竞争大吗郑州百度推广代运营公司
  • mvc4做网站五设计一个公司网站多少钱
  • 在什么网站可以做外贸出口劳保鞋北京 代理前置审批 网站备案
  • 邢台建设企业网站房地产宣传推广方案
  • 建设机械网站案例分析餐饮vi设计开题报告范文
  • 做本地生活网站深圳建设工程信息网站
  • C2C电商网站做博客的网站有哪些
  • 住房和城乡建设部网站 事故安微省建设厅田网站
  • 百度一下你就知道官页淘宝seo搜索引擎优化
  • 网站平台维护phpwind做的网站
  • 网站怎么做移动适配怎么样才算是一个网站页面
  • 做pc端网站策划百度网站建立
  • 高级网站开发技术青岛网站建设方案服务
  • 深圳公司网站建设设房地产网址大全