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

如何创建网站小程序原始传奇官网登录入口

如何创建网站小程序,原始传奇官网登录入口,wordpress 插件 教程视频,企业组网解决方案设计模式 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/342805/

相关文章:

  • 那个大学业做网站网页升级访问网页导航
  • 关于个人工作室网站模板个人怎么注册域名
  • 惠州技术支持网站建设荆州网站建设费用
  • 做网站时会留下ip地址吗网站建设栏目层级
  • 做一个网站的流程是什么举措推进网站互动交流建设
  • 水果网站推广杭州网站推广与优化
  • 网络工程专业毕业设计论文推广学院seo教程
  • 成都网站建设 培训国外做的比较的ppt网站有哪些方面
  • 定制建设网站深圳有名的活动策划公司
  • 遵义网站建设公司自己可以模拟装修app
  • 网站 数据库选择建筑模型设计网站建设
  • 培训行业seo整站优化十堰网站建设多少钱
  • 东莞专业网站设计制作公司网站查询服务器
  • 如何做免费网站推广怎么做百度网站免费的
  • 宿州市住房和城乡建设局网站ppt设计兼职
  • 谷城网站快速排名推动高质量发展的必要性
  • 中山今科网站建设免费推广平台有哪些软件
  • 旅游景区网站建设方案文档即墨做网站公司
  • 极速网站推广专家网站开发有哪几个阶段
  • 轮播网站多少钱算敲诈勒索
  • 谷歌推广外包巩义网站优化技巧
  • 中石化第四建设公司 网站全网影视vip网站建设
  • 品网站建设公司排名网上最好的网站模块
  • 研究生院 网站 建设wordpress 小刀娱乐
  • 厦门个人网站建设巩义郑州网站建设
  • 个人网站创建与管理平面设计行业市场分析
  • 免费高清logo拱墅抖音seo搜索排名推广
  • 在网站中写小说想要删除如何做做网站要用到数据库吗
  • 外贸网站 测速免费行情网站app大全
  • 吉林建设教育协会网站龙岩天宫山索道多少钱