状态模式(state)

简介

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

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

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

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

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

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

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

类图

相关推荐
nightunderblackcat14 小时前
四大名著智能可视化推演平台
前端·网络·爬虫·python·状态模式
青草地溪水旁1 天前
第十九章:千变万化,随心而动——State的状态艺术
状态模式
苏打水com2 天前
携程前端业务:在线旅游生态下的「复杂行程交互」与「高并发预订」实践
前端·状态模式·旅游
源力祁老师5 天前
Odoo 前端控制器:构建无缝集成的网站页面
状态模式
青草地溪水旁5 天前
设计模式(C++)详解——状态模式(State)(1)
c++·设计模式·状态模式
额呃呃7 天前
异步日志系统
状态模式
珹洺8 天前
Java-Spring入门指南(十九)thymeleaf基本概念
java·spring·状态模式
charlie1145141919 天前
精读 C++20 设计模式:行为型设计模式 — 状态机模式
c++·学习·设计模式·状态模式·c++20
i小杨10 天前
前端埋点(打点)方案
前端·状态模式
大飞pkz11 天前
【设计模式】状态模式
开发语言·设计模式·c#·状态模式