策略模式的实现的简单Demo
来源:互联网 发布:重庆装修网络推广 编辑:程序博客网 时间:2024/06/05 16:17
策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。本质就是将算法和客户端分离,在客户端完全不知情的情况下扩展算法的功能。
示例图如下所示:
下面就是实现一个策略模式的简单Demo:
首先声明一个策略的接口Strategy:
package CeLvMoShi;public interface Strategy {public String getReturnMoney(); }然后创建满减和打折俩个实体类:
package CeLvMoShi;public class ManJian implements Strategy {@Overridepublic String getReturnMoney() {// TODO Auto-generated method stubreturn "满500减100";}}
package CeLvMoShi;public class DaZhe implements Strategy{@Overridepublic String getReturnMoney() {// TODO Auto-generated method stubreturn "满100打八折";}}然后创建一个chooseStrategy的类供客户端调用:
package CeLvMoShi;public class chooseStrategy {private Strategy strategy;//原始的策略模式,客户端必须去知道全部的算法类并且在客户端由客户端自己去选择实现/*public chooseStrategy(Strategy strategy){this.strategy = strategy;}*///添加一个封装方法类的策略方法public void setStrategy(Strategy strategy) {this.strategy = strategy;}//调用对象里面的strategy方法public String getResult(){return this.strategy.getReturnMoney();}//为了简化起见,可以把chooseStrategy的构造方法上面加上简单工场模式public chooseStrategy(String choose1){switch (choose1) {case "满减":this.strategy = new ManJian();break;case "打折":this.strategy = new DaZhe();}}}
测试类如下所示:
package CeLvMoShi;public class TestStrategy {public static void main(String[] args) {chooseStrategy chooseStrategy1;chooseStrategy chooseStrategy2;//使用打折消费(原始的策略模式)/*chooseStrategy1 = new chooseStrategy(new DaZhe());System.out.println(chooseStrategy1.getResult());chooseStrategy1.setStrategy(new ManJian());System.out.println(chooseStrategy1.getResult());*///使用策略模式和简单工场模式结合的方式chooseStrategy1 = new chooseStrategy("打折");System.out.println(chooseStrategy1.getResult());chooseStrategy2 = new chooseStrategy("满减");System.out.println(chooseStrategy2.getResult());}}
阅读全文
1 0
- 策略模式的实现的简单Demo
- Android观察者模式的简单实现demo
- Android观察者模式的简单实现demo
- 策略模式的实现
- 策略模式的实现
- 策略模式的简单使用
- 策略模式与简单工厂的C++实现
- 有趣的Java - 简单使用enum实现策略模式Strategy
- 策略模式接口和抽象类的简单实现
- 策略模式:策略模式与简单工厂模式的异同
- 实现计时器 的简单demo
- [简单的设计模式]策略模式
- 一个策略模式的实现
- 策略模式的C++实现
- 设计模式最简Demo:策略模式 + 简单工厂模式
- 设计模式: 策略模式的实现
- 设计模式--策略模式的python实现
- 单例模式的简单demo
- ConcurrentHashMap总结
- spring cache和ehcache
- Java中关于静态变量的一个问题
- SiteMesh页面装饰器的使用步骤
- redis那点事儿(三)
- 策略模式的实现的简单Demo
- sql 数据分页
- VS中调试时不能查看STL中的变量的值
- 音乐本地扫描工具类,返回一个集合
- 再大的洪水也阻挡不了我们刷题的热情···(Orz)
- 《Drools7.0.0.Final规则引擎教程》第1章 Drools简介
- redis 锁
- Android 属性动画 详解
- 如何遍历链表