状态模式(state)

简介

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

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

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

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

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

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

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

类图

相关推荐
列星随旋2 小时前
minio分片上传
状态模式
我爱学习_zwj9 小时前
前端设计模式:轻量级实战指南
设计模式·前端框架·状态模式
LSL666_9 小时前
9 前后端数据处理格式的注意事项
状态模式·请求·响应
仪***沿1 天前
Fluent中颗粒流模拟的门道
状态模式
GDAL1 天前
前端保存用户登录信息 深入全面讲解
前端·状态模式
柯南二号1 天前
【大前端】【Android】把 Activity 重构成 MVVM 的对比示例
android·状态模式
William_cl2 天前
【CSDN 专栏】C# ASP.NET控制器过滤器:自定义 ActionFilterAttribute 实战(避坑 + 图解)
c#·asp.net·状态模式
柯南二号2 天前
【后端】【Java】一文详解Spring Boot RESTful 接口统一返回与异常处理实践
java·spring boot·状态模式·restful
张毫洁3 天前
将后端resources中的文件返给前端下载的方法
前端·状态模式
阿里巴啦4 天前
从零搭建移动端数字人生成应用:React + Go + D‑ID 实战
react.js·golang·状态模式·数字人·did·ai移动端数字人