如何优雅地摒弃if else,实现工资飞跃涨2000元?

更新于
2026-10-11 09:15:44
0阅读来源:SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1117个文字,预计阅读时间需要5分钟。

如何优雅地摒弃if else,实现工资飞跃涨2000元?

点击下方免费获取SpringBoot学习资料!+ 学习资料 + 需求 + 这里虚拟一个业务需求,让大家都容易理解。假设有一个订单系统,其中一个功能是根据订单的不同类型进行不同的处理。

点击下方免费领取SpringBoot学习资料!!

学习资料

需求

这里虚拟一个业务需求,让大家容易理解。假设有一个订单系统,里面的一个功能是根据订单的不同类型作出不同的处理。

订单实体:


添加图片注释,不超过 140 字(可选)


service接口:


添加图片注释,不超过 140 字(可选)


传统实现

根据订单类型写一堆的if else:


添加图片注释,不超过 140 字(可选)


策略模式实现

利用策略模式,只需要两行即可实现业务逻辑:


添加图片注释,不超过 140 字(可选)


可以看到上面的方法中注入了HandlerContext,这是一个处理器上下文,用来保存不同的业务处理器,具体在下文会讲解。我们从中获取一个抽象的处理器AbstractHandler,调用其方法实现业务逻辑。

现在可以了解到,我们主要的业务逻辑是在处理器中实现的,因此有多少个订单类型,就对应有多少个处理器。以后需求变化,增加了订单类型,只需要添加相应的处理器就可以,上述OrderServiceV2Impl完全不需改动。

阅读全文

本文共计1117个文字,预计阅读时间需要5分钟。

如何优雅地摒弃if else,实现工资飞跃涨2000元?

点击下方免费获取SpringBoot学习资料!+ 学习资料 + 需求 + 这里虚拟一个业务需求,让大家都容易理解。假设有一个订单系统,其中一个功能是根据订单的不同类型进行不同的处理。

点击下方免费领取SpringBoot学习资料!!

学习资料

需求

这里虚拟一个业务需求,让大家容易理解。假设有一个订单系统,里面的一个功能是根据订单的不同类型作出不同的处理。

订单实体:


添加图片注释,不超过 140 字(可选)


service接口:


添加图片注释,不超过 140 字(可选)


传统实现

根据订单类型写一堆的if else:


添加图片注释,不超过 140 字(可选)


策略模式实现

利用策略模式,只需要两行即可实现业务逻辑:


添加图片注释,不超过 140 字(可选)


可以看到上面的方法中注入了HandlerContext,这是一个处理器上下文,用来保存不同的业务处理器,具体在下文会讲解。我们从中获取一个抽象的处理器AbstractHandler,调用其方法实现业务逻辑。

现在可以了解到,我们主要的业务逻辑是在处理器中实现的,因此有多少个订单类型,就对应有多少个处理器。以后需求变化,增加了订单类型,只需要添加相应的处理器就可以,上述OrderServiceV2Impl完全不需改动。

阅读全文