聊聊:Springboot整合策略模式概念和使用场景以及优缺点
发布时间:2023-04-22 15:01:38 321
相关标签: # 支付
策略模式
1. 什么是策略模式
策略模式,英文全称是 Strategy Design Pattern
。在 GoF 的《设计模式》一书中,它是这样定义的:
定义一族算法类,将每个
算法分别封装起来
,让它们可以互相替换
。策略模式可以使算法的变化独立于使用它们的客户端(这里的客户端代指使用算法的代码)。
2. 策略模式结构组成
- Strategy:抽象策略类,一般为接口或者策略类
- ConcreteStrategy:具体算法实现策略类
- Context:环境或者上下文类,用于统一执行具体策略
其实以上三部分用白话文来解释就是:
需要一个接口和策略进行规范和约束接口和方法,这时需要一些具体的实现算法类去继承或者实现刚刚的接口和策略,最后通过一个环境或者上下文,也可以叫做工厂根据类型进行调用具体的算法!
3. 使用场景
- 避免冗长的 if-else 或 switch 分支判断
- 需要动态地在几种算法中选择一种
- 对客户隐藏具体策略 (算法) 的实现细节,彼此完全独立,扩展其余不受影响
具体场景一般为:
- 支付方式选择
- 打折、满减方式选择
- 根据类型调用不同的系统
4. 优缺点
优点:
- 扩展性好
- 符合开闭原则
- 符合单一职责原则
- 可读性好
- 便于维护
- 避免多层判断
缺点:
- 策略过多,导致策略类
- 对新手读代码不友好
文章来源: https://blog.51cto.com/jianpandaxia/5995538
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报