ABAP设计模式之---“策略模式(Strategy Pattern)”

1. 定义

策略模式,定义了算法(规则)家族,分别封装起来,让它们之间可以相互替换。

此模式让算法(规则)的变化,不会影响到使用算法的客户。

2. 解读

类比:

  • 网上购物时,我们会发现商家有着各种各样的促销策略,例如满300减100, 第二件8折,买3件7折等等。其实,这与面向对象的程序世界中的策略模式是一个很好的对应,每一种促销算法,其实都可以抽象成一种策略。

优点:

  • 开放封闭原则的典型应用(面向接口编程,而非面向实现编程)
  • 抽象需求中功能的部分为接口,也即封装变化 (向修改封闭)
  • 在具体的算法类中实现接口(向扩展开放)
  • 是最常用的一种设计模式,经常与简单工厂模式结合使用

弊端:

  • 客户端需要了解不同算法间的区别
  • 复杂场景中,可能出现额外的通信开销。接口定义的参数会是一个全集(覆盖所有场景),具体的实现类中,可能并非所有的参数、方法都会用到。

3. 举例

具体的实现代码,可以参照简单工厂模式文中的代码。

下面我给出一个UML图来展示抽象与实现之间的关系。
在这里插入图片描述

本博客专注于技术分享,干货满满,持续更新。
欢迎关注❤️、点赞👍、转发📣!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SAP-nkGavin

给作者赏杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值