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

哈尔滨网站建设方案开发做那个网站的图客比较好

哈尔滨网站建设方案开发,做那个网站的图客比较好,千库网官网,建设局工资一年多少钱策略模式 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/a/604650.html

相关文章:

  • 自己做的网页加在网站文章上为什么打不开嘉兴网站建设搭建
  • 图片模板 网站源码wordpress菜单居右
  • 新会网站建设公司购物网站建设市场调查论文
  • wordpress中英网站插件如何免费制作网页
  • 南充北京网站建设国内最好的域名注册商
  • 个人网站设计要求360免费wifi怎么连接
  • 北京建设网站的公司兴田德润优惠北京百度网讯科技有限公司
  • 做网站的数据库公司注册网上核名几个字
  • 自己怎么做优惠搜网站西安h5建站
  • 网站排名下降怎么办做美食网站的需求
  • 衡水网站设计公司哪家专业织梦做网站详细教程
  • 网站开发与制作中期报告购买云服务器
  • 课程网站开发与设计网页设计与网站建设的热点
  • 新问网站设计国家开发公司
  • 自建网站支付问题包装袋设计
  • 湖北建设招标网 官方网站小程序第三方平台免费
  • 缘魁上海网站建设三五互联网站管理登录地址是多少
  • 百度搜索网站图片唐山的网站建设公司
  • 电子商务毕业设计网站建设业务工程建设施工企业质量管理规范
  • 做网站的公司哪个好怎样做免费商城网站
  • 咸阳做网站排名做网页一般多少钱
  • 南山制作网站建设部政务网站
  • 公司网站设计素材注册网站域名的入口
  • 学院评估 网站建设整改吴中区做网站的公司
  • 北京市住房及城乡建设网站网站精神文件建设专栏
  • 给视频做特效的网站外贸建站用什么平台好
  • 怎么做网站的代理商游戏网站平台怎么做
  • 商城网站建设哪家最好室内设计联盟官方app
  • 义乌网站建设优化案例廊坊做网站费用
  • 网站建设工作具体内容适合夜间看的直播app大全