设计模式 - 状态模式
1.设计模式6原则 2.设计模式23种3.设计模式 - 单例模式4.设计模式 - 原型模式5.设计模式 - 抽象工厂6.设计模式 - 工厂方法7.设计模式 - 解释器模式8.设计模式 - 代理模式9.设计模式 - 外观模式10.设计模式 - 装饰者模式11.设计模式 - 组合模式12.设计模式 - 适配器模式13.设计模式 - 桥接模式14.设计模式 - 建造者模式15.设计模式 - 享元模式16.设计模式 - 策略模式17.设计模式 - 访问者模式
18.设计模式 - 状态模式
19.设计模式 - 迭代器模式20.设计模式 - 观察者模式21.设计模式 - 命令模式22.设计模式 - 中介者模式23.设计模式 - 备忘录模式24.设计模式 - 职责链模式25.设计模式 - 模板方法模式Allow an object to alter its behavior when its internal state changes.
The object will appear to change its class.
UML
实例
电梯状态切换,具体类中维护;
在线投票系统,在Context中维护;
页面超时跳转
- 对象需要根据自身当前状态进行不同的行为,同时状态的数量非常多且与状态相关的会频繁变更。
- 某个类需要根据成员变量的当前值改变自身行为,使用了大量的条件语句。
- 当相似状态和基于条件的状态机转换中存在许多重复代码。
比较
状态模式、桥接模式、策略模式、适配器模式 接口类似,都是基于组合模式,即将工作委派给其他对象,不过也各自解决了不同的问题。
比较 | 状态模式 | 备注 |
---|---|---|
策略模式 | 状态是策略的扩展。但状态没有限制具体状态之间依赖 | 策略使得对象相互之间完全独立,也不知道其他对象的存在 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
2021-04-21 Ling应用