状态模式(state)

简介

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

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

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

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

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

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

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

类图

相关推荐
一个高效工作的家伙19 小时前
amis表单较验
状态模式
zhysunny5 天前
20.万物皆可变身术:状态模式架构全景解析
java·状态模式
橘色的喵7 天前
嵌入式C语言编程:策略模式、状态模式和状态机的应用
c语言·状态模式·策略模式·状态机
跟着珅聪学java8 天前
Spring MVC 教程
状态模式
小傅哥9 天前
【分享】拼团交易平台系统,分布式、高并发、微服务
分布式·微服务·状态模式
mit6.82411 天前
[Agent开发平台] API网关 | 业务领域 | DTO格式 | 分页令牌
人工智能·golang·状态模式
飏旎13 天前
对于前端闭包的详细理解
前端·状态模式
曾经的三心草13 天前
微服务的编程测评系统9-竞赛新增-竞赛编辑
微服务·架构·状态模式
Haven-14 天前
黑马商城微服务-下
微服务·架构·状态模式
困鲲鲲15 天前
设计模式:状态模式 State
设计模式·状态模式