状态模式(state)

简介

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

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

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

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

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

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

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

类图

相关推荐
C_心欲无痕6 小时前
有限状态机在前端中的应用
前端·状态模式
雨中散步撒哈拉16 小时前
22、做中学 | 高一下期 | Golang反射
开发语言·golang·状态模式
小陈phd16 小时前
langGraph从入门到精通(四)——基于LangGraph的State状态模式设计
python·microsoft·状态模式
stella·19 小时前
后端二进制文件,现代前端如何下载
前端·ajax·状态模式·axios·request·buffer·download
wang60212521820 小时前
流式输出注意点
python·状态模式·fastapi
阿珊和她的猫2 天前
深入理解 React 中的 Render Props 模式
前端·react.js·状态模式
前端不太难2 天前
Flutter / RN / iOS,在长期维护下谁更容易“止损”?
flutter·ios·状态模式
工程师0073 天前
C#状态机
开发语言·c#·状态模式·状态机
浮游本尊3 天前
React 18.x 学习计划 - 第十二天:企业级实践与进阶主题
学习·react.js·状态模式
前端不太难3 天前
Flutter 状态复杂度,如何在架构层提前“刹车”
flutter·架构·状态模式