状态模式(state)

简介

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

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

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

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

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

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

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

类图

相关推荐
努力也学不会java15 小时前
【设计模式】状态模式
java·设计模式·状态模式
闲人编程2 天前
前端形态与样式风格:从古典到现代的视觉语言演进
前端·css·状态模式·组件·js·风格·响应式
摸鱼仙人~5 天前
后端错误处理的艺术:BusinessException 与 ResultUtils 的完美分工
状态模式
上优5 天前
Vue3纯前端同源跨窗口通信移动AGV小车
前端·vue.js·状态模式
南山二毛5 天前
机器人控制器开发(部署——软件打包备份更新)
机器人·状态模式
阿里嘎多哈基米6 天前
SQL 层面行转列
数据库·sql·状态模式·mapper·行转列
bikong77 天前
状态模式(State Pattern)——网络连接场景的 C++ 实战
状态模式
TechNomad7 天前
设计模式:状态模式(State Pattern)
设计模式·状态模式
mit6.8249 天前
[Upscayl图像增强] docs | 前端 | Electron工具(web->app)
前端·人工智能·electron·状态模式
卑微的小鬼9 天前
Go语言的编译和运行过程
开发语言·golang·状态模式