什么是状态模式?
一个函数原本有很多判断语句,现在把判断语句中的每一种状态封装成一个类,每一个状态类中均有一个handle()函数,该函数能对当前状态做出处理,并且能指明不能处理时的下一个状态类。
状态模式的类图
1.将一个原本的判断结构封装成一个个状态类,每个状态类都有函数handle(Context);
该函数对本状态作出处理,当无法处理时,将context肚子中的成员变量state改成能处理的那个状态类的对象,并执行context的request()函数;
handle()函数实现如下:
public void handle(Context Context){
//判断是否能处理
if(本类能处理){
进行处理;
}
//本类不能处理时
else{
//将context的state变量设为能处理状态类的对象