State 状态模式

设计原则学习笔记
设计模式学习笔记

作用

将一个类在不同状态下的操作组合起来,成为一个类。方便不同状态下的操作切换和扩展。

类图

State 状态模式_第1张图片
状态模式

Java实现

//定义状态
public interface State {
    void handle();
}
public class StateA implements State {
    @Override
    public void handle() {
        //todo do something A
    }
}
public class StateB implements State {
    @Override
    public void handle() {
        //todo do something B
    }
}
//定义Context
public class Context {
    private State state = new StateA();
    public void request() {
        state.handle();
    }
    public void setState(State state) {
        this.state = state;
    }
}
//客户端在不同状态下有不同行为
public class Client {
    public static void main(String[] args) {
        Context context = new Context();
        context.request();
        context.setState(new StateB());
        context.request();
    }
}

Android源码中的应用

  • WifiStateMachine

你可能感兴趣的:(State 状态模式)