世界上并没有完美的程序,但是我们并不因此而沮丧,因为写程序就是一个不断追求完美的过程。

  1. 意图
    定义一系列算法,把它们一个个封装起来,并且可以相互替换。
  2. 类图
  3. 实例
interface Strategy {/*** 操作* @param a* @param b*/Integer option (Integer a, Integer b);}static class PlusStrategy implements Strategy {@Overridepublic Integer option(Integer a, Integer b) {return a + b;}}static class MultiplyStrategy implements Strategy {@Overridepublic Integer option(Integer a, Integer b) {return a * b;}}static class Context {private Strategy strategy;public Context (Strategy strategy) {this.strategy = strategy;}public Integer option (Integer a, Integer b) {return strategy.option(a, b);}}
  1. 测试
public static void main(String[] args) {Context ctx = new Context(new PlusStrategy());int re = ctx.option(3, 2);System.out.println("plus strategy : " + re);ctx = new Context(new MultiplyStrategy());re = ctx.option(3, 2);System.out.println("multiply strategy : " + re);}

运行结果:

plus strategy : 5
multiply strategy : 6

想看更多吗?请访问:设计模式

什么是策略模式(Strategy)?相关推荐

  1. 8.6 GOF设计模式四: 策略模式… Strategy Pattern

    策略模式- Strategy Pattern  在POS系统中,有时需要实行价格优惠, 该如何处理?  对普通客户或新客户报全价  对老客户统一折扣5%  对大客户统一折扣10%  注:课件 ...

  2. 设计模式 ( 十八 ) 策略模式Strategy(对象行为型)

    设计模式 ( 十八 ) 策略模式Strategy(对象行为型) 1.概述 在软件开发中也经常遇到类似的情况,实现某一个功能有多种算法或者策略,我们能够依据环境或者条件的不同选择不同的算法或者策略来完毕 ...

  3. 策略模式(Strategy)简介

    一, 回顾简单工厂模式(SimpleFactory) 上一篇博文: http://blog.csdn.net/nvd11/article/details/41855937 还是用回那个计算器作例子. ...

  4. 解读设计模式----策略模式(Strategy Pattern)

    一.模式概述      策略模式(Strategy Pattern)在外形上与状态模式很相似,但在意图上有些不同.其意图是使这些算法可以相互替换,并提供一种方法来选择最合适的算法.       在我应 ...

  5. 策略模式/Strategy

    策略模式/Strategy 意图/适用场景: 策略模式是针对一组算法,将每一个算法封装到具有共同接口的独立类中,从而使得它们可以互换.这样做的好处是,客户端可以以插件的方式更换算法. 电子商务网站的购 ...

  6. 设计模式--策略模式(strategy)

    1.策略模式(strategy ['strætədʒi]) 我的理解是:方案候选模式 (反正关键就是有很多的候选,哈哈) 看了很多例子,都是在说鸭子的,那个例子很好,在这里可以看 他们生产鸭子,我们就 ...

  7. 二十四种设计模式:策略模式(Strategy Pattern)

    策略模式(Strategy Pattern) 介绍 定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换.本模式使得算法的变化可独立于使用它的客户. 示例 有一个Message实体类,对它的操 ...

  8. 设计模式(一):“穿越火线”中的“策略模式”(Strategy Pattern)

    在前段时间呢陆陆续续的更新了一系列关于重构的文章.在重构我们既有的代码时,往往会用到设计模式.在之前重构系列的博客中,我们在重构时用到了"工厂模式"."策略模式" ...

  9. Java策略模式(Strategy)

    文章目录 策略模式(Strategy) 一.不使用策略模式 二.使用策略模式 1.案例类图 2.案例实现 3.总结 4.开发中的使用场景 策略模式(Strategy) 一.不使用策略模式 使用场景: ...

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

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

最新文章

  1. 赢在中国(08-02-27)
  2. jQueryDOM操作
  3. 利用Docker构建开发环境
  4. 全球及中国生物医药产业供给需求前景与运营风险分析报告2022版
  5. linux重启终端后go命令,Linux基础命令之关机,重启,注销-Go语言中文社区
  6. 【洛谷P1632】点的移动
  7. sql date类型_共享单车数据分析的SQL数据库设计
  8. Win7休眠后唤醒出现黑屏的解决办法
  9. 【WPF学习笔记】之如何点击“新建”按钮,在面板中加载一条条的“用户控件”的信息:动画系列之(四)...
  10. Docker学习总结(22)——Docke run命令详解
  11. iptables基本概念详解
  12. FileInputStream实现读取文件内容并输出到屏幕上
  13. 计算机网络的对学生的利弊英语作文,关于电脑利弊的英语作文
  14. 服务器有固态盘系统安装,服务器有装固态硬盘吗
  15. 组织架构图怎么画?思维导图创作教程分享
  16. 红米4 android 8,【红米4(标准版) 安卓6.0.1线刷包】MIUI V8.1.4.0.MCECNDI稳定版 可解账号锁...
  17. IDEA部署项目到tomcat运行成功但是页面404的两种原因
  18. 扫地机器人水箱背景_一种扫地机器人的水箱结构的制作方法
  19. linux可变剪切分析,SUPPA2进行可变剪切定量
  20. java计算机毕业设计基于安卓Android的人在旅途旅行出行APP(源码+系统+mysql数据库+Lw文档)

热门文章

  1. 【苦力怕树】——Stoer_Wagner中的所谓“最大生成树”
  2. word编号后怎么让其不自动缩进
  3. 游戏服务器维护后福利,游戏维护,究竟需不需要发放“补偿”?|葡萄视点
  4. tarball data for *** seems to be corrupted. Trying one more time
  5. QT + opencv做的切图软件,将一幅图切成多张并附加在背景上
  6. “百度杯”CTF比赛 九月场 Upload解题思路
  7. nasm : test eflags ZF
  8. ArcGIS几种数据格式(ZZ)
  9. 如何通过PS把LOGO的背景色变透明
  10. bigemap瓦片数据MBTiles存储简介