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

1. 定义

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

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

2. 解读

类比:

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

优点:

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

弊端:

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

3. 举例

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

下面我给出一个UML图来展示抽象与实现之间的关系。
ABAP设计模式之---“策略模式(Strategy Pattern)”_第1张图片

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

你可能感兴趣的:(设计模式,sap,abap,设计模式,策略模式)