策略模式+简单工厂-实际应用场景
2019-01-11 15:29
78 查看
1、抽象策略接口
[code]//抽象出他们共有的行为(支付行为) //从调用微信、支付宝、银联卡可以抽出一个公共的策略接口,同时也是为了实现定义中的互换 public interface PayStrategy { public void pay(float money); }
2、实现具体的策略
[code]//支付宝支付的行为具体实现 public class AliPayStrategy implements PayStrategy { @Override public void pay(float money) { //调用支付宝的接口具体代码 略... if(money<=200){ System.out.println("通过调用支付宝的接口"+"直接支付了"+money); }else{ System.out.println("通过调用支付宝的接口"+"输入密码验证再支付了"+money); } } } //微信支付的行为具体实现 public class WeChatPayStrategy implements PayStrategy { @Override public void pay(float money) { //调用微信的接口略。。。。 System.out.println("通过调用微信支付的接口支付了"+money); } }
3、实现ContextStrategy角色
[code]public class ContextStrategy { private PayStrategy strategy; public void payout(float money){ strategy.pay(money);//调用策略 } public void setStrategy(PayStrategy strategy){ this.strategy=strategy;//设置策略类 } }
4、结合简单工厂模式
[code]//负责实例化对应产品的对象 public class Factory { public static final String TYPE_ALI="ali"; public static final String TYPE_WECHAT="wechat"; private Factory() { } public static PayStrategy create(String type){ PayStrategy product=null; if(TYPE_ALI.equals(type)){ product=new AliPayStrategy(); }else if(TYPE_WECHAT.equals(type)){ product=new WeChatPayStrategy(); } return product; } }
5、测试
[code]public class Client { public static void main(String[] args) { ContextStrategy strategy = new ContextStrategy(); strategy.setStrategy(new AliPayStrategy()); strategy.payout(1000f); strategy.setStrategy(new WeChatPayStrategy()); strategy.payout(20f); //结合简单工厂模式 PayStrategy payStrategy=Factory.create(Factory.TYPE_ALI); payStrategy.pay(1000.0f); payStrategy=Factory.create(Factory.TYPE_WECHAT); payStrategy.pay(20.0f); } }
相关文章推荐
- 策略模式和简单工厂及反射的联合应用(待续)
- 简析设计模式之工厂模式与策略模式的实际组合应用
- 简单工厂、工厂方法、抽象工厂、策略模式、策略与工厂的区别
- 设计模式1(简单工厂模式,策略模式)
- 简单工厂、工厂方法、抽象工厂、策略模式、策略与工厂的区别
- 设计模式的应用场景(16)--策略模式
- 策略模式 + 简单工厂模式
- 商场促销-策略模式(和简单工厂模式很像的哇) C#
- 【设计模式】工厂模式结合反射技术的简单应用
- 大话设计模式1 简单工厂模式 策略模式
- 简单工厂模式和策略模式的区别
- Java策略模式的简单应用实现方法
- 简单工厂,工厂模式和抽象工厂,以及策略模式
- 简单工厂、工厂方法、抽象工厂、策略模式、策略与工厂的区别
- 简单工厂、工厂方法、抽象工厂、策略模式、策略与工厂的区别
- 策略模式与状态工厂,简单工厂的恩怨
- 接口的实际应用--工厂设计模式
- 补充策略模式结构图以及简单工厂模式结构图对比
- 从头认识设计模式-策略模式-01-原始应用场景
- 简单工厂模式 和 策略模式 学习笔记