角色
State:
抽象状态角色,定义一个接口用来封装与Context的一个特定接口状态相关的行为。
Concrete State:
具体状态角色,实现接口State的方法(状态相关的行为)。
Context:
环境角色,拥有私有抽象状态角色属性。构造方法对该属性赋值为空,提供set和get方法。
在具体状态类中的行为方法传参环境角色,在方法内调用环境角色的set方法设置具体状态角色为当前类。
案例
状态这个词汇我们并不陌生,在日常生活中,不同时间就有不同的状态,早上起来精神饱满,中文想睡觉,下午又渐渐恢复,晚上可能精神更旺也可能耗费体力只想睡觉,这一天中就对应着不同的状态。
抽象状态角色
public interface State {
void date();
}