状态模式(state)

简介

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

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

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

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

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

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

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

类图

相关推荐
东方巴黎~Sunsiny12 小时前
后端已经开始使用AI代替前端开发了
java·人工智能·状态模式
夕除1 天前
实战--8
状态模式
前端不太难2 天前
鸿蒙 App 智能助手:实现原理 + 开发实践
华为·状态模式·harmonyos
知识汲取者2 天前
每日一篇高频面试题之 Redis 持久化
状态模式
前端不太难3 天前
鸿蒙游戏需要 GameEngine 吗?
游戏·状态模式·harmonyos
薛定猫AI3 天前
【深度解析】大模型编码能力评测:Reasoning Effort、Agentic Workflow 与多模型 API 实战
状态模式
木斯佳4 天前
前端八股文面经大全:字节跳动-存储部门一面(2026-05-29)·面经深度解析
前端·状态模式
C+++Python4 天前
线性状态和状态模式有什么区别?
状态模式
边界条件╝4 天前
微前端进阶(四)
前端·状态模式
我是一颗柠檬4 天前
【Java后端技术亮点】动态路由权限(按钮级权限),细粒度控制到按钮级别
java·开发语言·后端·状态模式