状态模式(state)

简介

当一个对象有很多种状态且不同的状态有不同的行为的时候可以使用。

状态模式由状态类以及环境类(context)组成。

状态类抽象类规定的该状态的功能操作,如支付流程中的有未付款、已付款两个状态,未付款状态能够进行商品的选购、付款功能,已付款状态能够进行退出功能。具体状态的功能由子类根据实际情况来实现。

实现技巧:状态类接口可以由抽象类来做空实现,函数体直接抛出异常,交由具体子类来实现。

环境类作为上下文,标识当前的状态,每次状态的改变需要改变环境类存储的状态信息。

优点:可读性高、方便维护且符合开闭原则。

缺点:每个状态会对应一个类,会产生很多的类。

类图

相关推荐
wrx繁星点点13 小时前
状态模式(State Pattern)详解
java·开发语言·ui·设计模式·状态模式
JungleCoding13 小时前
403 Request Entity Too Lager(请求体太大啦)
状态模式
XYX的Blog1 天前
设计模式09-行为型模式2(状态模式/策略模式/Java)
设计模式·状态模式·策略模式
kevin_tech1 天前
Go API 多种响应的规范化处理和简化策略
开发语言·后端·golang·状态模式
denghai邓海2 天前
基于势能的平面运动模拟
python·平面·状态模式
JAVA开发区3 天前
设计模式之状态模式
设计模式·状态模式·状态转换
cgv35 天前
springboot2.x使用SSE方式代理或者转发其他流式接口
状态模式·springboot sse·sse流式接口·see代理流式接口·sse转发流式接口
mushangqiujin5 天前
ctfshow web入门文件上传总结
网络安全·状态模式
Yvemil75 天前
“高效开发之路:用Spring MVC构建健壮的企业级应用”
状态模式
wrx繁星点点7 天前
状态模式:封装对象状态并改变行为的设计模式
java·开发语言·spring·ui·设计模式·状态模式