【源码分析设计模式 11】SpringMVC中的策略模式

本文介绍了策略模式如何用于简化业务逻辑中的if-else结构,通过商场促销场景展示如何创建策略类并应用到实际代码中,以提高代码的可读性和可维护性。
摘要由CSDN通过智能技术生成

===============

1、何时使用


对于业务开发来说,业务逻辑的复杂是必然的,随着业务发展,需求只会越来越复杂,为了考虑到各种各样的情况,代码中不可避免的会出现很多if-else。

一旦代码中if-else过多,就会大大的影响其可读性和可维护性,而且代码显得很low。

策略模式完美的解决了ifelse的烦恼!

2、方法


将这些算法封装成一个一个的类,任意的替换

3、应用实例


  • 出行方式,自行车、汽车等,每一种出行方式都是一个策略

  • 商场促销方式,打折、满减等

  • java AWT中 LayoutManager ,即布局管理器

4、注意事项


如果一个系统的策略多于四个,就需要考虑使用混合模式解决策略类膨胀的问题

640?wx_fmt=jpeg

四、代码实例

==========

下面就以商场促销为例使用策略模式实现商场促销算法。UML图如下:

1、上下文类


首先声明一个 CashSuper 对象,通过构造方法,传入具体的收费策略, getResult() 方法的功能为根据收费策略的不同获取计算结果。

package designMode.strategy;

public class CashContext {

private CashSuper cashSuper;

public CashContext(CashSuper cashSuper) {

this.cashSuper = cashSuper;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值