策略模式 – 迪迦

首先定义策略的抽象 – 战斗形态

public interface CombatForm {void fight();
}

综合战斗形态

public class IntegratedCombatForm implements CombatForm {private IntegratedCombatForm() {}private static final IntegratedCombatForm INSTANCE = new IntegratedCombatForm();@Overridepublic void fight() {System.out.println("哉佩利敖光线: ===============");}public static IntegratedCombatForm getInstance() {return INSTANCE;}
}

强力战斗形态

public class PowerfulCombatForm implements CombatForm {private PowerfulCombatForm() {}private static final PowerfulCombatForm INSTANCE = new PowerfulCombatForm();@Overridepublic void fight() {System.out.println("迪拉休姆光流: ==============>>");}public static PowerfulCombatForm getInstance() {return INSTANCE;}
}

敏捷战斗形态

public class AgileCombatForm implements CombatForm {private AgileCombatForm() {}private static final AgileCombatForm INSTANCE = new AgileCombatForm();@Overridepublic void fight() {System.out.println("兰帕尔特光弹: ----------->>");}public static AgileCombatForm getInstance() {return INSTANCE;}
}

迪迦本尊

public class Tiga {private CombatForm combatForm;public Tiga(CombatForm combatForm) {this.combatForm = combatForm;}/*** 切换形态*/public void changeForm(CombatForm combatForm) {this.combatForm = combatForm;}public void fight() {this.combatForm.fight();}
}

测试类

public class Test {public static void main(String[] args) {Tiga tiga = new Tiga(IntegratedCombatForm.getInstance());tiga.fight();tiga.changeForm(PowerfulCombatForm.getInstance());tiga.fight();tiga.changeForm(AgileCombatForm.getInstance());tiga.fight();}
}

运行效果

哉佩利敖光线: ===============
迪拉休姆光流: ==============>>
兰帕尔特光弹: ----------->>

设计模式 --策略模式相关推荐

  1. Python设计模式-策略模式

    Python设计模式-策略模式 代码基于3.5.2,代码如下; #coding:utf-8 #策略模式class sendInterface():def send(self,value):raise ...

  2. 关于设计模式——策略模式-Strategy Pattern

    文章目录 1 策略模式 1.1 模拟鸭子 1.2 设计原则 1.3 整合行为 1.4 模拟鸭子代码的代码 1.5 动态设定行为 1.6 重新查看整体 1.7 继承和组合 1.8 总结 1.9 优劣期间 ...

  3. [设计模式] ------ 策略模式

    策略模式 它定义了算法家族,分别封装起来,让他们直接可以互相替换,此模式让算法的变化,不会影响到使用算法的客户 其实很简单,可能很多人都用到了,只不过还不知道这就是策略模式而已. 比如定义一个接口A, ...

  4. java 策略模式 促销_java设计模式——策略模式

    一. 定义与类型 定义:针对一组算法,将每一种算法都封装到具有共同接口的独立的类中,从而是它们可以相互替换.策略模式的最大特点是使得算法可以在不影响客户端的情况下发生变化,从而改变不同的功能.当代码中 ...

  5. Springboot 使用设计模式- 策略模式

    前言 直白点,什么场景我们需要使用到设计模式- 策略模式. 在平常的springboot项目里面做CRUD,我们的习惯性基本是 一个mapper,一个service,一个serviceImpl. 但是 ...

  6. 李建忠设计模式——策略模式Strategy

    目录 1.策略模式定义 1.动机 2.模式定义 3.结构 2.实现例子 1.问题描述 2.代码实现 3.要点总结 4.参考 1.策略模式定义 1.动机 软件构建过程中,某些对象使用的算法可能多种多样, ...

  7. 15. 星际争霸之php设计模式--策略模式

    题记 ============================================================================== 本php设计模式专辑来源于博客(jy ...

  8. Java设计模式-策略模式作业

    Java设计模式-策略模式作业,所有类和接口均在一个package内 文章目录 前言 一.作业内容 二.具体实现 1.类图 2.Strategy接口 3.PreCopyStrategy类 4.Post ...

  9. 设计模式-策略模式2.0

    设计模式-策略模式2.0 前面文章我们说过了传统的策略模式的实现,本文我们简单说下设计模式中的升级版的策略模式,策略模式2.0. 代码实现 talk is cheap show me the code ...

  10. 设计模式-策略模式(Strategy)-Java

    设计模式-策略模式(Strategy)-Java 目录 文章目录 1.前言 2.示例案例-电影票打折方案 3.策略模式概述 3.1.策略模式定义 3.2.策略模式结构 3.3.策略模式结构图中角色 3 ...

最新文章

  1. Python技术学习之Django框架设计思想
  2. IDEA——找不到或无法加载主类的一种暴力解决方法
  3. ORACLE SELECT INTO NO_DATA_FOUND问题
  4. java 切面 不执行,解决springboot的aop切面不起作用问题(失效的排查)
  5. 华为全球注册“hongmeng”商标;库克回应“封杀苹果”;Android Studio 3.5 Beta 4发布 | 极客头条...
  6. linux远程ssh的端口映射,SSH端口映射
  7. 练法、打法、演法——回味老罗踢馆这场戏
  8. vTestStudio:变体Variant初理解
  9. 淘宝6.18叠猫猫赚猫币自动生成
  10. C#:实现一个将字符串转换为整数的方法
  11. 华硕S400装win7
  12. 关于生活、职场的犀利、讽刺言论,网友们都是奇才!
  13. C#面向对象编程:构造函数
  14. 【Delphi】中使用消息Messages(八)Android 系统消息感知
  15. 游戏开发——孤岛算法实现SLG游戏大世界多类型地表边缘拼接效果
  16. Spring Boot 错题本
  17. Xilinx-Z7K7启动模式
  18. Python end= 什么意思?
  19. 类似微信聊天界面加载历史记录的样式
  20. Java生成二维码并把图片流导出压缩包下载(亲测可用)

热门文章

  1. Android Activity、adb
  2. CF833B The Bakery
  3. Mybatis面试题集锦 那些经常问到的Mybatis面试30题
  4. 解决ipset重启服务器 ipset list黑白名单需要重新建立问题
  5. vulkan管线学习6
  6. matlab基因频率是看最大值吗,基于ICA的语音信号盲分离.doc
  7. killall与killall-9
  8. C++ 打印 vector
  9. Docker镜像篡改供应链攻击研究
  10. 长期戴耳机的危害有多大?有没有不伤耳朵的蓝牙耳机?