状态模式
定义
在状态模式(State Pattern)中,类的行为是基于它的状态改变的。
在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 对象。
类图
State(状态)
表示了状态,定义了根据不同状态进行不同处理的接口。该接口是那些处理内容依赖于状态的方法的集合。
ConcreteState
表示各个具体状态,它实现了State接口
Context(状况、前后关系、上下文)
持有表示当前状态的ConcreteState对象。此外,它还定义了供外部滴啊用着使用State模式的接口。
示例
类图
Context
1 | public interface Context { |
DayState
1 | public class DayState implements State { |
NightState
1 | public class NightState implements State { |
SafeFrame
1 | public class SafeFrame extends Frame implements ActionListener, Context { |
State
1 | public interface State { |
Main
1 | public class Main { |