状态模式(state)

简介

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

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

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

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

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

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

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

类图

相关推荐
yuzhiboyouye2 小时前
VO一般java后端怎么转换成前端想要的数据
java·前端·状态模式
我叫张小白。6 小时前
劳动力招聘管理系统:全栈实战(Vue3+FastAPI+WebSocket+Dify)
websocket·vue·毕业设计·状态模式·fastapi·dify·智能体
csdn小瓯7 小时前
结构化输出实战:Pydantic Schema约束LLM生成JSON
json·状态模式
肖恩想要年薪百万1 天前
JSP中常用JSTL标签
java·开发语言·状态模式
测试_AI_一辰1 天前
AI时代,学东西的方式变了
人工智能·ai·自动化·状态模式·ai编程
北风朝向1 天前
Spring Boot 集成 Open WebUI 实现 AI 流式对话
人工智能·spring boot·状态模式
2301_780789661 天前
多层级 CC 防护体系:前端验证与后端限流的协同配置实践
运维·服务器·前端·网络安全·智能路由器·状态模式
沙振宇1 天前
【Python】使用YOLO8识别视频中的车与人物
python·yolo·音视频·状态模式·识别
薛定猫AI1 天前
【深度解析】从 Gemini 3.2、Claude 限额变化到 AI Agent:大模型工程化选型与实战评估
人工智能·状态模式
heimeiyingwang1 天前
【架构实战】API网关Spring Cloud Gateway:统一入口的艺术
架构·状态模式