什么是策略模式(Strategy)?
世界上并没有完美的程序,但是我们并不因此而沮丧,因为写程序就是一个不断追求完美的过程。
- 意图
定义一系列算法,把它们一个个封装起来,并且可以相互替换。 - 类图
- 实例
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);}}
- 测试
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)?相关推荐
- 8.6 GOF设计模式四: 策略模式… Strategy Pattern
策略模式- Strategy Pattern 在POS系统中,有时需要实行价格优惠, 该如何处理? 对普通客户或新客户报全价 对老客户统一折扣5% 对大客户统一折扣10% 注:课件 ...
- 设计模式 ( 十八 ) 策略模式Strategy(对象行为型)
设计模式 ( 十八 ) 策略模式Strategy(对象行为型) 1.概述 在软件开发中也经常遇到类似的情况,实现某一个功能有多种算法或者策略,我们能够依据环境或者条件的不同选择不同的算法或者策略来完毕 ...
- 策略模式(Strategy)简介
一, 回顾简单工厂模式(SimpleFactory) 上一篇博文: http://blog.csdn.net/nvd11/article/details/41855937 还是用回那个计算器作例子. ...
- 解读设计模式----策略模式(Strategy Pattern)
一.模式概述 策略模式(Strategy Pattern)在外形上与状态模式很相似,但在意图上有些不同.其意图是使这些算法可以相互替换,并提供一种方法来选择最合适的算法. 在我应 ...
- 策略模式/Strategy
策略模式/Strategy 意图/适用场景: 策略模式是针对一组算法,将每一个算法封装到具有共同接口的独立类中,从而使得它们可以互换.这样做的好处是,客户端可以以插件的方式更换算法. 电子商务网站的购 ...
- 设计模式--策略模式(strategy)
1.策略模式(strategy ['strætədʒi]) 我的理解是:方案候选模式 (反正关键就是有很多的候选,哈哈) 看了很多例子,都是在说鸭子的,那个例子很好,在这里可以看 他们生产鸭子,我们就 ...
- 二十四种设计模式:策略模式(Strategy Pattern)
策略模式(Strategy Pattern) 介绍 定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换.本模式使得算法的变化可独立于使用它的客户. 示例 有一个Message实体类,对它的操 ...
- 设计模式(一):“穿越火线”中的“策略模式”(Strategy Pattern)
在前段时间呢陆陆续续的更新了一系列关于重构的文章.在重构我们既有的代码时,往往会用到设计模式.在之前重构系列的博客中,我们在重构时用到了"工厂模式"."策略模式" ...
- Java策略模式(Strategy)
文章目录 策略模式(Strategy) 一.不使用策略模式 二.使用策略模式 1.案例类图 2.案例实现 3.总结 4.开发中的使用场景 策略模式(Strategy) 一.不使用策略模式 使用场景: ...
- 设计模式-策略模式(Strategy)-Java
设计模式-策略模式(Strategy)-Java 目录 文章目录 1.前言 2.示例案例-电影票打折方案 3.策略模式概述 3.1.策略模式定义 3.2.策略模式结构 3.3.策略模式结构图中角色 3 ...
最新文章
- 赢在中国(08-02-27)
- jQueryDOM操作
- 利用Docker构建开发环境
- 全球及中国生物医药产业供给需求前景与运营风险分析报告2022版
- linux重启终端后go命令,Linux基础命令之关机,重启,注销-Go语言中文社区
- 【洛谷P1632】点的移动
- sql date类型_共享单车数据分析的SQL数据库设计
- Win7休眠后唤醒出现黑屏的解决办法
- 【WPF学习笔记】之如何点击“新建”按钮,在面板中加载一条条的“用户控件”的信息:动画系列之(四)...
- Docker学习总结(22)——Docke run命令详解
- iptables基本概念详解
- FileInputStream实现读取文件内容并输出到屏幕上
- 计算机网络的对学生的利弊英语作文,关于电脑利弊的英语作文
- 服务器有固态盘系统安装,服务器有装固态硬盘吗
- 组织架构图怎么画?思维导图创作教程分享
- 红米4 android 8,【红米4(标准版) 安卓6.0.1线刷包】MIUI V8.1.4.0.MCECNDI稳定版 可解账号锁...
- IDEA部署项目到tomcat运行成功但是页面404的两种原因
- 扫地机器人水箱背景_一种扫地机器人的水箱结构的制作方法
- linux可变剪切分析,SUPPA2进行可变剪切定量
- java计算机毕业设计基于安卓Android的人在旅途旅行出行APP(源码+系统+mysql数据库+Lw文档)
热门文章
- 【苦力怕树】——Stoer_Wagner中的所谓“最大生成树”
- word编号后怎么让其不自动缩进
- 游戏服务器维护后福利,游戏维护,究竟需不需要发放“补偿”?|葡萄视点
- tarball data for *** seems to be corrupted. Trying one more time
- QT + opencv做的切图软件,将一幅图切成多张并附加在背景上
- “百度杯”CTF比赛 九月场 Upload解题思路
- nasm : test eflags ZF
- ArcGIS几种数据格式(ZZ)
- 如何通过PS把LOGO的背景色变透明
- bigemap瓦片数据MBTiles存储简介