设计模式行为型:状态模式

电子说

1.2w人已加入

描述

在状态模式(State Pattern)中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。

在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象。

对象的行为依赖于它的状态(属性),并且可以根据它的状态改变而改变它的相关行为。

结构图

状态机

结角色与理解

  • 状态模式共分为三种角色:
  • Context(上下文环境):将自身的状态与行为分离出去,封装成状态类,持有抽象状态类的引用,根据自身属性变换更换具体状态类。
  • State(抽象状态类):具体状态类的抽象,可以持有上下文环境的引用来更换状态。
  • Concrete State(具体状态类):实现不同状态下的不同行为。
  • 上下文环境引用抽象状态类完成行为的调用,状态类的状态变化可以有上下文环境处理,也可以由状态类处理。
  • 状态类可以共享,像开关对象一样,可以被多个上下文环境引用。

核心代码

抽象状态类

状态机

具体状态类

状态机

状态类

状态机

客户端

状态机

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分