Java中如何应用状态模式优化对象状态管理?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2206个文字,预计阅读时间需要9分钟。
目录概述UML类图状态模式与策略模式谁决定状态转换的流向State是接口还是抽象类应用案例分析状态抽象类可奖励的状态奖励物品完成状态发放奖励物品的状态不能奖励的状态奖励
目录
- 概述
- UML类图
- 状态模式与策略模式
- 谁决定状态转换的流向
- State是接口还是抽象类
- 应用案例分析
- 状态抽象类
- 可以抽奖的状态
- 奖品发放完毕状态
- 发放奖品的状态
- 不能抽奖状态
- 抽奖活动(Context)
- 测试状态模式
概述
状态模式允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。这个模式将状态封装成独立的类,并将动作委托到 代表当前状态的对象,我们知道行为会随着内部状态而改变。
一个对象“看起来好像修改了它的类”是什么意思呢?从客户的视角来看:如果说你使用的对象能够完全改变它的行为,那么你会觉得,这个对象实际上是从别的类实例化而来的。然而,实际上,你知道我们是在使用组合通过简单引用不同的状态对象来造成类改变的假象。
状态模式它主要用来解决对象在多种状态转换时,需要对外输出不同的行为的问题。状态和行为是一一对应的,状态之间可以相互转换。
UML类图
- Context是一个类,它可以拥有一些内部状态。
本文共计2206个文字,预计阅读时间需要9分钟。
目录概述UML类图状态模式与策略模式谁决定状态转换的流向State是接口还是抽象类应用案例分析状态抽象类可奖励的状态奖励物品完成状态发放奖励物品的状态不能奖励的状态奖励
目录
- 概述
- UML类图
- 状态模式与策略模式
- 谁决定状态转换的流向
- State是接口还是抽象类
- 应用案例分析
- 状态抽象类
- 可以抽奖的状态
- 奖品发放完毕状态
- 发放奖品的状态
- 不能抽奖状态
- 抽奖活动(Context)
- 测试状态模式
概述
状态模式允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。这个模式将状态封装成独立的类,并将动作委托到 代表当前状态的对象,我们知道行为会随着内部状态而改变。
一个对象“看起来好像修改了它的类”是什么意思呢?从客户的视角来看:如果说你使用的对象能够完全改变它的行为,那么你会觉得,这个对象实际上是从别的类实例化而来的。然而,实际上,你知道我们是在使用组合通过简单引用不同的状态对象来造成类改变的假象。
状态模式它主要用来解决对象在多种状态转换时,需要对外输出不同的行为的问题。状态和行为是一一对应的,状态之间可以相互转换。
UML类图
- Context是一个类,它可以拥有一些内部状态。

