状态模式(state)

简介

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

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

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

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

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

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

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

类图

相关推荐
T0uken1 小时前
Go + Node.js 全栈单文件部署方案
golang·node.js·状态模式
u***B7921 小时前
Spring Boot实时推送技术详解:三个经典案例
spring boot·后端·状态模式
i***l9202 小时前
使用 Spring Boot 实现图片上传
spring boot·后端·状态模式
q***735517 小时前
SpringBoot中使用TraceId进行日志追踪
spring boot·后端·状态模式
B***y8851 天前
SpringMVC的工作流程
状态模式
q***14642 天前
SpringMVC的工作流程
状态模式
7***n752 天前
前端设计模式详解
前端·设计模式·状态模式
徐同保2 天前
n8n执行pnpm dev:fe命令,前后端同时启动
状态模式
y***13642 天前
【wiki知识库】07.用户管理后端SpringBoot部分
spring boot·后端·状态模式
gAlAxy...2 天前
SpringMVC 请求参数绑定全解析
状态模式