状态模式(state)

简介

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

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

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

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

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

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

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

类图

相关推荐
weixin_445476682 天前
LIMS 3.0 测试环境部署过程记录
linux·状态模式
xiaoxiangsiyan3 天前
运维之前端反调试学习
运维·前端·学习·状态模式
热爱编程的小李3 天前
UniApp 实现 H5/Android/uniapp原生 三端 MinIO 预签名 PUT 直传方案
状态模式
Crazy________5 天前
k8s部署若依微服务架构流程,v3.6.6
运维·云原生·容器·kubernetes·状态模式
fīɡЙtīиɡ ℡5 天前
怎么是用JWT
java·状态模式
立心者07 天前
D Gaussian splatting : 部署模型网页展示
状态模式
一水9 天前
TTFT优化:一个方案的5次推倒重来
java·ai·状态模式
yz_aiks10 天前
Requestly规则使用技巧:前端联调、接口Mock与网络请求调试实战
前端·网络·状态模式·requestly
星恒随风10 天前
C++ STL 详解:map 与 multimap 的使用、operator[]
开发语言·c++·笔记·学习·状态模式
Dontla11 天前
q搜索 / q过滤解释(q参数、query参数、q=)
状态模式