C++ 策略模式

简述

策略模式(Strategy Pattern)定义一系列算法,把它们一个个封装起来,并且使它们可以互相替换。Strategy 可以使算法独立于使用算法的客户端。

| 版权声明:一去、二三里,未经博主允许不得转载。

模式结构

UML 结构图:

Strategy Pattern

  • Context(环境角色):持有一个对 Strategy 的引用,最终给客户端调用。
  • Strategy(抽象策略):定义了一个公共接口,让不同的算法以不同的方式来实现。通过这个接口,Context 可以调用不同的算法。
  • ConcreteStrategy(具体策略):实现 Strategy 定义的接口,提供具体算法的实现。

优缺点

优点:

  • 各自使用封装的算法,可以很容易地引入新的算法来满足相同的接口。
  • 由于实现的是同一个接口,所以策略之间可以自由切换。
  • Strategy 使客户端能够选择所需的算法,而无需使用 switch/caseif/else 语句。
  • 算法的细节完全封装在 Strategy 类中,因此,可以在不影响 Context 类的情况下更改算法的实现。

缺点:

©️2020 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客 返回首页
实付39.90元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值