(转载请注明出处:http://blog.csdn.net/buptgshengod)

1.背景知识

策略模式作为一种软件设计模式,指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法。比如每个人都要“交个人所得税”,但是“在美国交个人所得税”和“在中国交个人所得税”就有不同的算税方法。策略模式将不同的算法封装起来,根据客户端的需求,调用不同的对象使用不同的算法,节省了大量的if-else之类的代码量。

2.实现

本例由三种算法组成,算法一是将数字乘以1,算法二是乘以2,算法三是乘以3。客户端调用第二种算法。
Calculate.java -三种算法的接口
public interface Calculate {
/** 算法接口,返回具体的算法*/public int calnumber(int number);}

FirstCalculate.java-第一种算法,其余两种算法略

public class FirstCalculate implements Calculate {@Overridepublic int calnumber(int number) {// TODO Auto-generated method stubSystem.out.println("算法一");return number;}}

Context.java-设定算法的使用环境

public class Context {Calculate cal;
/** 构造函数,设定使用的算法对象*/public Context(Calculate cal){this.cal=cal;}
/** 将数据传入对应算法*/public int SetNumber(int number){return cal.calnumber(number);}
}

Client.java-入口函数

public class Client {public static void main(String[] args) {  Calculate cal=new SecondCalculate();Context con=new Context(cal);int result=con.SetNumber(300);System.out.println(result);}
}

结果

3.例子源代码

点击下载源码

【Java设计模式】策略模式相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. sql和mysql一起,SQL连接和MySQL
  2. 北邮OJ 2016 网预-Square Coins
  3. Reverse Vowels of a String (反转字符串中的母音)
  4. 9行代码AC_HDU-6374 Decimal(余数,因子)
  5. io流技术java_技术文章-java中的IO流
  6. python交互式绘图比较_python – 基于Tkinter和matplotlib的交互式绘图
  7. PDF转换为其他格式的方法
  8. 扇贝有道180902每日一句
  9. 用数据库表填充下拉列表框
  10. 【C语言数据结构】数组
  11. 怎么用计算机算弧度制,怎么设置计算器 把度数转化为弧度
  12. 简单html倒计时器代码,js简单倒计时实现代码
  13. java毕业设计 - vue外卖的点餐系统
  14. 计算机恢复原始桌面图标,Win10桌面图标如何恢复原来排列?
  15. Vue+ElementUI 限制结束时间不能大于开始时间
  16. MATLAB车牌识别原理[大白话]
  17. 基于Spring Boot企业微信点餐系统项目总结
  18. 《以太坊攻略》,小白如何逆袭成为技术大咖?要学的全在这里了
  19. K.M.P算法个人浅谈
  20. 四种基础博弈 巴什博奕+威佐夫博奕+斐波那契博弈+K倍博弈

热门文章

  1. php 数据库查询乱码,怎么解决php数据库查询乱码问题
  2. linux 删除o开头的文件,linux实现除了某个文件或某个文件夹以外的全部删除
  3. java如何绘制图表_java绘制excel图表(jxcell)
  4. python 将counter 的结果转换为字典
  5. shedlock mysql_ShedLock日常使用
  6. 文本编辑器中实现自动换行的功能
  7. 建模的常用手段:组合与聚合
  8. nginx 官方手册 php,nginx + php 的配置
  9. bert中的sep_基于向量的深层语义相似文本召回?你需要BERT和Faiss
  10. 32位mysql安装包_《MySQL 入门教程》第 02 篇 MySQL 安装