状态模式(state)

简介

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

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

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

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

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

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

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

类图

相关推荐
colofullove4 小时前
实时游玩页与 WebSocket 状态管理实现
websocket·网络协议·状态模式
夏天测9 小时前
业务逻辑漏洞实战:篡改响应包绕过登录,直入后台管理系统
渗透测试·状态模式·业务逻辑漏洞·web 安全·响应包篡改
可乐ea1 天前
【Spring Boot + MyBatis|第7篇】JWT 登录认证与拦截器实现
java·spring boot·后端·mybatis·状态模式
前端不太难1 天前
GPU 集群调度架构解析
架构·状态模式
ShiJiuD6668889991 天前
外卖项目笔记总结上 (后端板块)
状态模式
前端不太难1 天前
当 AI 接管 Workspace:鸿蒙 PC Agent 架构设计实践
人工智能·状态模式·harmonyos
Maimai108082 天前
Web3 前端实时通信如何落地:从 SSE 订阅到行情、订单与账户状态更新
前端·javascript·react.js·前端框架·web3·状态模式
不吃青椒!3 天前
LangGraph 流式事件处理:从实战到体系
ai·langchain·状态模式
前端不太难3 天前
鸿蒙游戏世界模型:实现原理 + Demo实现
游戏·状态模式·harmonyos
星恒随风3 天前
C++ 类和对象入门(六):友元、内部类、匿名对象和编译器优化
开发语言·c++·笔记·学习·状态模式