状态模式(state)

简介

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

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

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

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

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

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

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

类图

相关推荐
o0向阳而生0o4 天前
110、23种设计模式之状态模式(19/23)
设计模式·状态模式
小雨青年5 天前
Cursor 项目实战:AI播客策划助手(二)—— 多轮交互打磨播客文案的技术实现与实践
前端·人工智能·状态模式·交互
ACGkaka_5 天前
设计模式学习(十二)状态模式
学习·设计模式·状态模式
火车叨位去19496 天前
软件设计模式(tyutJAVA 状态模式实验)
设计模式·状态模式
czy87874756 天前
C语言实现状态模式
c语言·状态模式
2301_795167206 天前
玩转Rust高级应用 如何进行面向对象设计模式的实现,实现状态模式
设计模式·rust·状态模式
Cyyyy_g7 天前
【2025 SWPU-NSSCTF 秋季训练赛】gift_F12
网络协议·网络安全·https·状态模式
春生野草8 天前
Snapan项目--预览文件梳理
状态模式
无敌最俊朗@9 天前
后端开发 DTO-Entity-VO 转换模式详解
状态模式
qq_4203620310 天前
PDF导出服务
前端·pdf·状态模式·node·puppeteer