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

小企业建站系统郑州酒店网站建设

小企业建站系统,郑州酒店网站建设,网站空间面板,内网站做映射设计模式 22:策略模式 定义与目的 定义:策略模式定义了一系列算法,并将每一个算法封装起来,使它们可以互相替换。策略模式让算法的变化独立于使用算法的客户。目的:该模式的主要目的是将一组相关的算法封装成一系列可…

设计模式 22:策略模式

定义与目的
  • 定义:策略模式定义了一系列算法,并将每一个算法封装起来,使它们可以互相替换。策略模式让算法的变化独立于使用算法的客户。
  • 目的:该模式的主要目的是将一组相关的算法封装成一系列可互换的类,并使它们可以相互替换。这样,算法可以独立于使用它的客户而变化。
实现示例

假设我们有一个简单的游戏,玩家可以选择不同的战斗策略来攻击敌人。我们可以使用策略模式来实现这个需求。

// 抽象策略
interface BattleStrategy {void attack();
}// 具体策略 - 近战攻击
class MeleeAttack implements BattleStrategy {@Overridepublic void attack() {System.out.println("Swinging sword!");}
}// 具体策略 - 远程攻击
class RangedAttack implements BattleStrategy {@Overridepublic void attack() {System.out.println("Shooting arrow!");}
}// 具体策略 - 魔法攻击
class MagicAttack implements BattleStrategy {@Overridepublic void attack() {System.out.println("Casting fireball!");}
}// 上下文 - 玩家
class Player {private BattleStrategy strategy;public Player(BattleStrategy strategy) {this.strategy = strategy;}public void setStrategy(BattleStrategy strategy) {this.strategy = strategy;}public void doBattle() {System.out.println("Player attacks:");strategy.attack();}
}// 客户端代码
public class Client {public static void main(String[] args) {Player player = new Player(new MeleeAttack());player.doBattle();  // 输出: Player attacks: Swinging sword!player.setStrategy(new RangedAttack());player.doBattle();  // 输出: Player attacks: Shooting arrow!player.setStrategy(new MagicAttack());player.doBattle();  // 输出: Player attacks: Casting fireball!}
}
使用场景
  • 当你需要在运行时选择不同的算法或行为时。
  • 当一组相关的行为应该可以动态地互换时。
  • 当算法的变化独立于使用它的客户时。

策略模式通过将一组相关的算法封装成一系列可互换的类,并使它们可以相互替换,使得算法可以独立于使用它的客户而变化。这对于需要在运行时选择不同的算法或行为的场景非常有用。

小结

策略模式是一种常用的行为型模式,它可以帮助你将一组相关的算法封装成一系列可互换的类,并使它们可以相互替换。这对于需要在运行时选择不同的算法或行为的场景非常有用。

http://www.yayakq.cn/news/810964/

相关文章:

  • 查内部券的网站是怎么做的摄影网站建设任务书
  • 国内电商网站跳出率是多少做网站用多大配置的服务器
  • html网页设计代码实例优化网站制作方法大全
  • 昆明专业的网站制作建设wordpress下载页面模板
  • 青岛网站seo优化iis如何做网站
  • 注册网站法律风险网站首页图片 代码
  • 最近下载的网站怎么找成熟的网站怎么做seo推广
  • 做网站时候如果添加微信代码百度seo网站优化怎么做
  • 网站后台管理系统数据库设计公司网站设计详情
  • 网站制作公司昆明长沙网站seo诊断
  • 顺德装修网站建设青岛做网络推广的公司有哪些
  • 厦门搜索引擎优化合作seo推广优化
  • 建立网站的流程教育培训网站有哪些
  • 保定哪有做网站的公司做网站app入什么科目
  • 石家庄学做网站建设培训制作投票网站
  • 个体网站建设外包公司是干嘛的
  • 云服务器做网站一般配置高新区手机网站建设
  • 看公狍和女人做爰网站做房产抵押网站需要什么手续费
  • 网站建设的宿主选择男女做暧暧视频免费网站
  • 丽江做网站定兴网站建设
  • 自学做网站需要学会哪些电商网站建设系统
  • 域名建网站南屏网站建设
  • 北京梦创义网站建设vi设计的作用及意义
  • 做模板网站赚钱吗淘宝网上购物商城
  • 网站可以做多少个关键词wordpress 问卷调查插件
  • 学信网 的企业网站给你做认证dedecms小说采集
  • 浙江住房和城乡建设厅网站首页网站内容的实现方式
  • 怎么做阿里巴巴外贸网站天津的网络优化公司排名
  • 广告网站制作多少钱html网站开发心得
  • 中国化工网网站建设建议微信电商小程序有哪些