状态模式(state)

简介

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

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

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

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

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

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

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

类图

相关推荐
晴天1611 小时前
ES6+ 核心语法
前端·es6·状态模式
漂着的圆木2 天前
MCP 2026-07-28 长任务改造:别再用 HTTP 超时判断任务失败
分布式·架构·状态模式·ai agent
lincats3 天前
大白话讲解Addy Osmani 的循环工程Loop Engineering工作流
人工智能·驱动开发·架构·prompt·状态模式·知识图谱
MetaLite4 天前
Java通用枚举驱动下拉框-元数据接口与前端契约
java·前端·状态模式
骑士雄师4 天前
HITL = Human-in-the-Loop(人在回路中)
状态模式
星恒随风5 天前
C++11详解(一):统一初始化——列表初始化与 initializer_list
c++·笔记·学习·list·状态模式
许彰午5 天前
22-DataCenter报文序列化
java·低代码·架构·状态模式
geovindu6 天前
CSharp: State Pattern
开发语言·后端·c#·.net·状态模式·行为模式
————A8 天前
Agent 接收用户上传文件
人工智能·笔记·python·状态模式
果果燕10 天前
实习笔记(五)面板 board 按钮状态解析任务
状态模式