C++ 状态模式

简述

状态模式(State Pattern)是行为设计模式之一。当对象根据其内部状态改变其行为时,将使用状态设计模式。

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

模式结构

UML 结构图:

State Pattern

  • Context(上下文):定义一个与 Client 交互的接口。它维护对 ConcreteState 对象的引用,可以用该对象来定义当前状态。
  • State(抽象状态):定义接口,来声明每个 ConcreteState 应该做什么。
  • ConcreteState(具体状态):为 State 中定义的方法提供实现。

优缺点

优点:

  • 实现多态行为的好处是显而易见的,并且很容易添加状态来支持额外的行为。
  • 在状态模式中,对象的行为是其状态中函数的结果,并且在运行时根据状态改变行为,这就消除了对 switch/caseif/else 条件逻辑的依赖。
  • 可以提高内聚性,因为状态特定的行为被聚合到具体的类中,这些类被放在代码中的一个位置。

缺点:

  • 使用状态模式,必然会增加系统中类和对象的个数。
  • 由于状态模式的结构与实现较为复杂,一旦使用不当
©️2020 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客 返回首页
实付39.90元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值