状态模式(复杂)
定义:Allow an object to alter its behavior when its internal state
changes.The object will appear to change its class.(当一个对象内在状态改变时允许其改变行
为,这个对象看起来像改变了其类。) 状态模式可以有效的替换充满在程序中的 if else 语句:将不同条件下的行为封装在一
个类里面,再给这些类一个统一的父类来约束他们。
组成
- 使用环境(Context)角色:客户程序是通过它来满足自己的需求。它定义了客户程序需要的接口;并且维护一个具体状态角色的实例,这个实例来决定当前的状态。
- 状态(State)角色:定义一个接口以封装与使用环境角色的一个特定状态相关的行为。
- 具体状态(Concrete State)角色:实现状态角色定义的接口。
使用场景:
- 行为随状态改变而改变的场景
这也是状态模式的根本出发点,例如权限设计,人员的状态不同即使执行相同的行
为结果也会不同,在这种情况下需要考虑使用状态模式。 - 条件、分支判断语句的替代者
注意:
状态模式适用于当某个对象在它的状态发生改变时,它的行为也随着发生比较大的变化,也就是说在行为受状态约束的情况下可以使用
状态模式允许对象在内部状态改变时改变其行为,使对象看起来好像修改了它的类。它能有效地替换复杂的if-else语句,并且适用于行为受状态约束的情况。文章介绍了状态模式的组成、使用场景和注意事项,还提到了与策略模式的区别。文章旨在帮助读者深入理解设计模式,并提供了设计模式的分类概览。
订阅专栏 解锁全文
174

被折叠的 条评论
为什么被折叠?



