设计模式学习之策略模式
说明 策略模式是设计模式中使用频率很高的模式,主要的就是实现对行为的包装,达到结果的方式有多种,使用者可以选择任何一个方式来得到想要结果,在增加新的方式时更加的方便与灵活。它是为了适应算法的灵活性而产生的。 策略模式实现 以常用的购物为例,一般情况下购物分为浏览商品,下单,支付。在支付时消费者可以选择多种不同的支付方式,如支付宝、微信、京东支付、银联支付等。在支付中流程就可以使用到策略模式,网站为用户提供了这些支付方式可供选择,用户只需要选择自己喜欢的支付方式来进行充值就可以得到商品了。在一般情况下都会定义一个抽象类来定义支付的一些行为,如金额,商品简介等信息。实现的抽象类如以下定义: package cn.imcompany.pay; /** * Created by tomyli on 2018/6/20. * Github: https://github.com/peng051410 */ public interface Payment { boolean pay(String param); } 这样就定义了支付方式的行为,剩下的就由不同的支付方式来进行实现,比如支付宝支付、微信支付,示例代码如下: package cn.imcompany.pay; /** * Created by tomyli on 2018/6/20. * Github: https://github.com/peng051410 */ public class AliPay implements Payment { @Override public boolean pay(String param) { System.out.println("AliPay"); return true; } } public class WechatPay implements Payment { @Override public boolean pay(String param) { System.out.println("WechatPay"); return true; } } 要是再增加一种支付方式则可以实现Payment接口进行实现就可以了,一般情况下会有一个维护支付方式的常量类,由它来维护可用的支付方式。这个常量类的简化代码如下: ...