属于行为型模式(共11种)
根据状态决定行为
一个类里的动作根据他的状态不同会有不同的反应
一般用于 行为/动作 不会在扩展时 应用
(如果扩展则每个具体状态中也要增加相应状态应对行为的具体处理)
类图:
经典应用:
TCP connection
根据不同的状态 决定怎么open、close
一个状态接口 聚合几种自定义的行为
具体的状态类实现状态接口 重写方法 完成具体状态对应行为的反应
具体的状态类 调用对应状态的方法
代码举例


有限状态机(FSM)
线程的状态迁移
(与状态模式不相关,只是名字相像)
一个线程类 聚合了线程状态抽象类
一个状态迁移的方法 根据action迁移 、其他的业务方法(run())
具体的线程状态继承抽象总状态类 聚合线程类 根据action做相应的处理
修改action属性 将当前线程对象传入下一种状态 (完成了状态迁移)
每种状态的迁移 都是根据上一种状态和action 完成的
代码举例




