目录
定义
使用场景
定义
Allow an object to alter its behavior when its internal state changes.The
object will appear to change its class.(当一个对象内在状态改变时允许其改变行
为,这个对象看起来像改变了其类。)
● State——抽象状态角色
接口或抽象类,负责对象状态定义,并且封装环境角色以实现状态切换。
● ConcreteState——具体状态角色
每一个具体状态必须完成两个职责:本状态的行为管理以及趋向状态处理,通俗地
说,就是本状态下要做的事情,以及本状态如何过渡到其他状态。
● Context——环境角色
定义客户端需要的接口,并且负责具体状态的切换。
使用场景
● 行为随状态改变而改变的场景
这也是状态模式的根本出发点,例如权限设计,人员的状态不同即使执行相同的行
为结果也会不同,在这种情况下需要考虑使用状态模式。
● 条件、分支判断语句的替代者
注意:
状态模式适用于当某个对象在它的状态发生改变时,它的行为也随着发生比较大的
变化,也就是说在行为受状态约束的情况下可以使用状态模式,而且使用时对象的
状态最好不要超过 5 个。
有用请点赞,养成良好习惯!
疑问、交流、鼓励请留言!



