再一次实战策略模式
之前做三方支付系统的时候经常用到策略模式,比如用户会选择不同的支付方式,不同的支付方式又有不同的实现方法或银行接口调用。 现在做物联网系统,基于MQTT协议(TCP层面的协议)来传输数据,根据不同的请求(不同的Topic)处理不同的业务逻辑,也同样用到策略模式。 顿时感觉策略模式非常好用,而且结合Spring的实例化和注入功能,更加方便了。 今天就聊聊基于Spring(Boot)下策略模式的使用。 未使用策略模式时的处理
以物联网为例大家可能不够熟悉,下面就以支付场景为例。比如在支付的过程中我们可能会选择微信支付、支付宝支付或银卡支付。同时,银行卡 这样对照设计模式,通常不符合两个原则:单一职责原则和开闭原则。 我们会发现当前类(或方法)不处理了多个业务的功能,一旦任何一个支付方式的修改都可能会影响到其他的支付方式。同时,无法做到对扩展开放,对修改关闭。新增其他支付方式时同样要修改ifelse判断,影响到其他的业务逻辑。 而策略模式通常就是解决这种有很多ifelse处理逻辑,从而提高代码的可维护性、可扩展性和可读性。 策略模式的轮廓 在对上述代码进行改造之前,先来了解一下策略模式的基本组成。 策略模式(Strategy),定义了一组算法,将每个算法都封装起来,并且使它们之间可以互换。 策略模式通常由以下几部分组成:
用类图来表示(省略策略工厂类)如下图: (编辑:开发网_开封站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |