【设计模式】- 【策略模式】

目录

一、背景

二、设计

三、优缺点

四、案例具体代码地址


一、背景

我们在写代码的时候,常常会遇到不同的情况不同处理,通常情况下我们会使用if...else if ....else.... 但随着程序的不断扩展,可能if...else if 会越来越多,可维护性就会不断降低,而且代码的可读性也会越来越差,所以这里推荐大家使用策略模式。这里我分享两种我在工作中比较常用的策略模式以及策略模式+责任链模式

在这里以Java的项目来进行演示

二、设计

以订单的多状态处理来进行设计

提供 IHander类进行统一的handler的定义

抽象AbstractOrderStatusHandler进行handler的默认的一些方法的定义

OrderCommitStatusHandler(具体的实现handler)

OrderPayStatusHandler

...

通过Strategy进行控制,利用Map的特性根据handler的键获取对应的真正的处理handler实现的常用的策略模式

三、优缺点

  • 优点:提高了代码的可读性以及可扩展性(后续继续增加Handler就可以实现逻辑支持,无需改动原有的代码)。
  • 缺点:如果handler太多了容易导致类的膨胀。可用匿名内部类的方式进行编写代码(方法级别的策略模式,具体参照demo中的方法级别的策略模式)

四、案例具体代码地址

design-pattern-application: 设计模式实战

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值