状态模式(state)

简介

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

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

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

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

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

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

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

类图

相关推荐
lyh13441 天前
【Fiddler工具判断前后端Bug】
状态模式
季鸢1 天前
Java设计模式之状态模式详解
java·设计模式·状态模式
萌新小码农‍2 天前
Spring框架学习day7--SpringWeb学习(概念与搭建配置)
学习·spring·状态模式
EndingCoder4 天前
React从基础入门到高级实战:React 高级主题 - React 微前端实践:构建可扩展的大型应用
前端·javascript·react.js·前端框架·状态模式
何双新7 天前
第14讲、Odoo 18 实现一个Markdown Widget模块
python·状态模式
zwjapple7 天前
react-native的token认证流程
react native·状态模式·token
何中应8 天前
【设计模式-4.6】行为型——状态模式
java·设计模式·状态模式
失败尽是常态Z9 天前
基于JWT+Redis的登录流程实现
java·数据库·redis·状态模式·jwt·用户登录
暴躁哥11 天前
深入理解设计模式之状态模式
设计模式·状态模式
熙客12 天前
行为型:状态模式
状态模式