状态模式(state)

简介

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

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

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

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

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

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

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

类图

相关推荐
码云数智-园园8 小时前
优雅分页:Spring Boot 中 Pageable 参数的自动提取与全局复用实践
状态模式
PPPPickup16 小时前
easymall----管理后端分类展示
状态模式
前端不太难19 小时前
HarmonyOS 游戏运行态的完整状态机图
游戏·状态模式·harmonyos
前端不太难2 天前
HarmonyOS 为何用 Ability 约束游戏?
游戏·状态模式·harmonyos
新缸中之脑2 天前
5个AI设计的音乐 UI 比较
人工智能·ui·状态模式
前端不太难2 天前
游戏在 HarmonyOS 上如何“活”?
游戏·状态模式·harmonyos
浮游本尊2 天前
React 18.x 学习计划 - 第十三天:部署与DevOps实践
学习·react.js·状态模式
Vv1997_3 天前
JavaWeb后端全局异常处理
状态模式
小郎君。3 天前
PDF-知识图谱全流程前后端实现【工具已实现,搭建前后端pipline】
pdf·状态模式·知识图谱
前端不太难3 天前
HarmonyOS PC 焦点系统的正确建模方式
华为·状态模式·harmonyos