Java设计模式-策略模式作业,所有类和接口均在一个package内

文章目录

前言

一、作业内容

二、具体实现

1.类图

2.Strategy接口

3.PreCopyStrategy类

4.PostCopyStrategy类

5.CRRTMotionStrategy类

6.Context类

7.Test类



前言

Java设计模式中的策略模式

一、作业内容

        在某云计算模拟平台中提供了多种虚拟机迁移算法,例如动态迁移算法中的 Pre - Copy(预拷贝)算法、 Post - Copy (后拷贝)算法、 CR / RT - Motion 算法等,用户可以灵活地选择所需的虚拟机迁移算法,也可以方便地增加新算法。现采用策略模式进行设计,绘制对应的类图并编程模拟实现。

二、具体实现

1.类图

2.Strategy接口

public interface Strategy {public void algorithm();
}

3.PreCopyStrategy类

public class PreCopyStrategy implements Strategy{@Overridepublic void algorithm() {System.out.println("Use Pre-Copy algorithm");}
}

4.PostCopyStrategy类

public class PostCopyStrategy implements Strategy{@Overridepublic void algorithm() {System.out.println("Use Post-Copy algorithm");}
}

5.CRRTMotionStrategy类

public class CRRTMotionStrategy implements Strategy{@Overridepublic void algorithm() {System.out.println("Use CR/RT-Motion algorithm");}
}

6.Context类

public class Context {private Strategy strategy;public Context(Strategy strategy){this.strategy = strategy;}public void lookAlgorithm(){strategy.algorithm();}
}

7.Test类

public class Test {public static void main(String[] args) {Strategy preStrategy = new PreCopyStrategy();Strategy postStrategy = new PostCopyStrategy();Strategy CRRTStrategy = new CRRTMotionStrategy();Context preContext = new Context(preStrategy);Context postContex = new Context(postStrategy);Context CRRTContex = new Context(CRRTStrategy);preContext.lookAlgorithm();postContex.lookAlgorithm();CRRTContex.lookAlgorithm();}
}

Java设计模式-策略模式作业相关推荐

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

    1,什么是策略模式? 策略模式,又叫算法簇模式,就是定义了不同的算法族,并且之间可以互相替换,此模式让算法的变化独立于使用算法的客户. 2,策略模式有什么好处? 策略模式的好处在于你可以动态的改变对象 ...

  2. JAVA设计模式-策略模式

    1.1 需求背景 Background:M公司为某电影院开发了一套影院售票系统,在该系统中需要为不同类型的用户提供不同的电影票打折方式,具体打折方案如下: (1)学生凭学生证可享受票价8折优惠: (2 ...

  3. Java设计模式--策略模式

    策略模式是一种定义一系列算法的方法,从概念上来看,所有这些算法完成的都是相同的工作,只是实现不同,它可以以相同的方式调用所有的算法,减少了各种算法类与使用算法类之间的耦合 策略模式就是用来封装算法的, ...

  4. 小故事说JAVA设计模式-策略模式【Strategy Pattern】

    # 弄清概念 策略模式属于对象的行为模式.其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换.策略模式使得算法可以在不影响到客户端的情况下发生变化 # 策略模式 ...

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

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.策略模式 二.策略模式示例代码 1.支付策略 2.具体支付策略实现 3.策略执行对象 4.测试 总结 前言 本篇介 ...

  6. Java设计模式——策略模式(解决满屏的if/else)

    一.业务场景 项目需要对接支付系统,根据不同客户类型会有不同的支付方式,比如:支付宝.微信.银联.云闪付等等其他第三方支付平台,这个时候策略模式就大展身手了. 传统的if/else/switch 等等 ...

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

    1.  策略模式: 策略模式,也称为政策模式,定义如下: 定义一组算法,将每个算法都封装起来,使他们可以相互转化 2.  策略模式的原理是面向对象的继承和多态.策略模式的3个角色 a. Strateg ...

  8. Java设计模式策略模式(附实例代码)每天一学设计模式

    1.策略模式(Strategy Pattern):定义一系列算法,将每一个算法封装起来,并让它们可以相互替换.策略模式让算法可以独立于使用它的客户而变化. (1)Context(环境类):环境类是使用 ...

  9. Java设计模式-策略模式(一)

    一.策略模式是什么? 策略模式是指有一定行动内容的相对稳定的策略名称.策略模式在古代中又称"计策",简称"计",如<汉书·高帝纪上>:"汉 ...

最新文章

  1. 用户Session相关模块重构
  2. Jerry在2020 SAP全球技术大会的分享:SAP Spartacus技术介绍的文字版
  3. 《Hadoop大明白》【1】Hadoop的核心组件
  4. 【powerdesign】从mysql数据库导出到powerdesign,生成数据字典
  5. Java异常分类及处理
  6. Linux入门学习(十一)
  7. runtime_mysql_users_proxysql的配置系统
  8. [HDU4585]Shaolin
  9. 相机标定原理介绍(二)
  10. VS code open in browser无法打开chrome浏览器的解决办法
  11. DockerKubernetes ❀ Kubernetes集群 - DashBoard服务(Web管理)安装部署
  12. Linux 程序编译过程详解
  13. 电脑技巧2——调出控制面板(桌面控制面板)
  14. 引领5G智慧全场景 荣耀V30系列抢跑2020年市场
  15. 以水稻为例教你如何使用BSA方法进行遗传定位(上篇)
  16. 考研复试面试专业问题
  17. 【项目一】医疗实战-传智健康
  18. 职场中如何谈加薪,这么谈,成了也等于失败
  19. 为什么时钟信号比数据信号更容易引起辐射超标
  20. swagger 界面_使用Swagger和Scalatra进行界面驱动的开发简介

热门文章

  1. 前端html是什么?html5、css3是什么?
  2. kindle电子书分享网 - 技术栈
  3. 运用CDO对NC文件插值(更改分辨率)
  4. 2020 Android 大厂面试-插件化、模块化、组件化,android开发环境的搭建视频
  5. python学习——Day5
  6. UEFI开发与调试---QEMU虚拟盘的创建与修改
  7. js倒计时代码 支持同一页面多个倒计时代码(转)
  8. 十年资深马拉松跑者心脏骤停,跑马需当“心”
  9. HTML5 网页特殊字符大全(参考)
  10. GC1262R/S 单线圈无刷直流电机驱动芯片 PWM调速 、斜率控制、软启动、自锁保护 可匹配APX9262R