行为模式-状态模式

结构图:

释义:

状态模式, 让你能在一个对象的内部状态变化时改变其行为, 使其看上去就像改变了自身所属的类一样。

主要角色

- State(状态接口):定义了一个所有具体状态必须实现的接口,声明了处理状态相关行为的方法。
- ConcreteState(具体状态类):实现状态接口,每一个具体状态类对应于系统中的一个具体状态,它封装了该状态下对象的行为。
- Context(环境/上下文类):维护一个具体状态对象的引用,定义与状态无关的接口,并委托给当前状态对象处理与状态相关的操作。环境类还提供了改变当前状态的方法,以便在状态间转换。

工作原理

- 初始化:环境对象在初始化时会被赋予一个初始状态,这个状态是具体状态类的一个实例。
- 状态转换:当环境对象的内部条件改变时,其状态对象也会随之改变。这种改变通常是通过环境对象调用状态对象的方法来实现的,该方法会返回下一个状态的实例,然后环境对象更新其状态引用。
- 行为委托:环境对象对外提供的所有与状态相关的操作都委托给当前状态对象处理。这意味着实际执行操作的是当前状态对象,环境对象本身并不直接处理这些行为。

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值