在状态模式(State Pattern)中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。
在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象。
对象的行为依赖于它的状态(属性),并且可以根据它的状态改变而改变它的相关行为。
结构图
结角色与理解
- 状态模式共分为三种角色:
- Context(上下文环境):将自身的状态与行为分离出去,封装成状态类,持有抽象状态类的引用,根据自身属性变换更换具体状态类。
- State(抽象状态类):具体状态类的抽象,可以持有上下文环境的引用来更换状态。
- Concrete State(具体状态类):实现不同状态下的不同行为。
- 上下文环境引用抽象状态类完成行为的调用,状态类的状态变化可以有上下文环境处理,也可以由状态类处理。
- 状态类可以共享,像开关对象一样,可以被多个上下文环境引用。
核心代码
抽象状态类
具体状态类
状态类
客户端
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
状态机
+关注
关注
2文章
492浏览量
27541
发布评论请先 登录
相关推荐
基于入侵行为模式的告警关联
本文提出了一种基于入侵行为模式的告警关联方式。入侵行为模式是定义在时间基础上的一组谓词公式,其实质是通过时间限制联系在一起的入侵事件的集合。该方法在对大量告
发表于 08-13 08:35
•6次下载
设计模式:备忘录设计模式
备忘录设计模式(Memento Design Pattern)是一种行为型设计模式,它的主要目的是在不破坏对象封装性的前提下,捕捉和保存一个对象的内部
评论