状态模式(state)

简介

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

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

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

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

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

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

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

类图

相关推荐
共享ui设计和前端开发人才2 小时前
UI前端与数字孪生结合探索:智慧建筑的能耗管理与优化
前端·ui·状态模式
勤奋的知更鸟2 小时前
Java 编程之状态模式
java·开发语言·状态模式
阿珊和她的猫12 天前
`shallowReactive` 与 `shallowRef`:浅层响应式 API
前端·javascript·vue.js·typescript·状态模式
Resurgence0315 天前
状态模式State Pattern
笔记·状态模式
qqxhb15 天前
零基础设计模式——行为型模式 - 状态模式
java·设计模式·go·状态模式
码农颜17 天前
java 设计模式_行为型_23状态模式
java·设计模式·状态模式
lpfasd12320 天前
状态模式(State Pattern)
java·设计模式·状态模式
蔡蓝21 天前
设计模式-状态模式
ui·设计模式·状态模式
lyh134421 天前
在macOS上运行Linux容器的方法
数据结构·状态模式
人生如梦-24 天前
抽奖系统核心——抽奖管理
状态模式