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

温州网站制作方案今日百度小说排行榜

温州网站制作方案,今日百度小说排行榜,企业手机网站建设定制,如何做建议的网站策略模式 1.1 分类 (对象)行为型 1.2 提出问题 做一款打斗游戏,英雄使用不同的武器将会产生不同的损伤效果。 1.3 解决方案 定义一系列算法,把它们一个个封装起来。并且使它们可以相互替换。本模式使得算法可独立于使用它的…

策略模式

1.1 分类

(对象)行为型

1.2 提出问题

做一款打斗游戏,英雄使用不同的武器将会产生不同的损伤效果。

1.3 解决方案

定义一系列算法,把它们一个个封装起来。并且使它们可以相互替换。本模式使得算法可独立于使用它的客户而变化。

1.4 实现类图

在这里插入图片描述

  1. 上下文(Context)维护指向具体策略的引用,且仅通过策略接口与该对象进行交流。
  2. 策略(Strategy)接口是所有具体策略的通用接口,它声明了一个上下文用于执行策略的方法。
  3. 具体策略(Concrete Strategies)实现了上下文所用算法的不同变体。
  4. 当上下文需要运行算法时,它会在其已连接的策略对象上调用执行方法。上下文不清楚其所涉及的策略类型与算法的执行方式。
  5. 客户端(Client)会创建一个特定策略对象并将其传递给上下文。上下文则会提供一个设置器以便客户端在运行时替换相关联的策略。

1.5 示例代码

#include <iostream>
#include <string>//Strategy
class Weapon {
public:virtual std::string fightAlgorithm() const = 0;
};class Nife : public Weapon {
public:std::string fightAlgorithm() const override {return "使用匕首计算损伤。";}
};
class Axe : public Weapon {
public:std::string fightAlgorithm() const override {return "使用斧子计算损伤。";}
};
//Context
class Hero {
private:Weapon* m_weapon;
public:Hero(Weapon* weapon = nullptr) : m_weapon(weapon) {}void setWeapon(Weapon* weapon) { m_weapon = weapon; }void fight() {std::cout << m_weapon->fightAlgorithm() << "\n";}
};
int main()
{std::cout << "客户端:英雄使用匕首攻击。\n";Nife nife;Hero hero(&nife);hero.fight();std::cout << "客户端:英雄使用斧子攻击。\n";Axe axe;hero.setWeapon(&axe);hero.fight();
}

1.6 举个栗子

在导航系统中,不同的出行方式会有不同的导航结果,使用策略模式封装不同的路径规划算法。
在这里插入图片描述

1.7 总结

1.7.1 优点

  1. 可在运行时切换对象内的算法。
  2. 可将算法的实现和使用算法的代码隔离开来。
  3. 可使用组合来代替继承。
  4. 开闭原则。无需对上下文进行修改就能够引入新的策略。

1.7.2 缺点

如果算法极少发生改变,那么没有任何理由引入新的类和接口。使用该模式只会让程序过于复杂。

http://www.dtcms.com/wzjs/458536.html

相关文章:

  • 网站怎么显示备案号网络推广员怎么做
  • wordpress首页分类调用win10系统优化软件哪个好
  • wordpress页面显示分类文章郑州网站优化seo
  • 怎么做网站扫描官网设计比较好看的网站
  • 武汉 网站建设app推广刷量
  • 公司建站文案给网站公司看的冯宗耀seo教程
  • 新河镇网站制作磁力链搜索引擎入口
  • 博客做公司网站个人网站推广怎么做
  • 网站建设费应开具互联网信息服务吗怎么样把自己的产品网上推广
  • 网站建设佰首选金手指十六怎么制作一个网站首页
  • 网站重新建设的请示百度大数据中心
  • 怎么在网站中做视频背景seo页面代码优化
  • 德庆网站建设深圳网络推广哪家公司好
  • 网站不备案可以使用么国内最新新闻大事
  • 国外免费网站建设免费seo排名优化
  • 做球服的网站有哪些2022世界足球排行榜
  • 网站顶部flash百度网盘人工客服电话
  • logo设计竞标网站百度一下官方网址
  • 锦州做网站公司合肥百度seo排名
  • 义乌做网站zisou8搜狗友链交换
  • 参考网是合法网站吗?今日头条搜索优化
  • 微网站策划方案专业百度seo排名优化
  • 网站的关键词排名怎么做武汉关键词排名工具
  • 郑州建立网站网站seo怎么做
  • 最简单的做网站的软件智能营销系统
  • 营销型网站设计思路贵港seo关键词整站优化
  • 广州做网络服装的网站建设软文营销的优势
  • php网站开发教程培训网店运营怎么学
  • 芜湖住房和城乡建设委员会网站百度资源共享链接分享组
  • 58同城石家庄网站建设谷歌网站优化