设计模式(6) 对象行为型模式 STATE 状态

目录

本节关于STATE 状态模式 —— 对象行为型模式

1. 意图

允许一个对象在其内部状态改变时改变它的行为,以至于对象看起来似乎修改了它的类。

依赖倒转原则:针对接口编程

2. 别名

状态对象 Objects for Status

3. 动机

网络连接的类TCPConnection。一个TCPConnection对象的状态处于若干不同状态之一:Established、Listening、Closed。当一个TCPConnection对象收到其他对象的请求时,它根据自身的当前状态作出不同反应。State模式描述了TCPConnection如何在每一种状态下表现出不同的行为。

关键思想——引入TCPState的抽象类来表示网络的连接状态。TCPState类为各表示不同的操作状态的子类声明一个公共接口。TCPState的子类实现与特定状态相关的行为。

4. 适用性

  • 一个对象的行为取决于其状态,并且它必须在运行时刻根据状态改变其行为
  • 一个操作中含有庞大的多分支的条件语句,且这些分支依赖于该对象的状态。该状态通常用一个或多个枚举常量表示。

5. 结构

6. 参与者

7. 协作

8. 效果

9. 实现

10. 代码示例

11. 已知应用

0%