设计模式之策略模式

策略模式在平时开发中应该算是使用算多的设计模式了。在spring源码中大量使用了这种模式,比如解析xml标签时是根据配置选择相应的解析类的。参考优秀框架的经验,所做的项目有一处场景是使用了数据库采取策略模式。

业务场景:

在我们计算服务费得时候场景比较复杂。有预审服务费,后审服务费,向中标人收取服务费,向投标人收取服务费.....以后还会接着改造,传统的做法写if,else呗,只要增加一种策略就加个else if,减一个策略就删一个else if。但这样明显太low。

代码重构:

首先定义一个接口,接口定义一个获取服务费的方法。然后不同策略定义不同的实现类,每个实现类重写获取服务费方法。然后在数据库配置不同业务对应的beanName,我们只需要传入业务名就可以获取beanName,然后在调用getBean(beanName)就可以获取不同的实现类。

优点:

增加策略:新增实现类,增加数据库配置

减少策略:删掉实现类,移除数据库配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值