State 状态模式

作者: Charles1993 | 来源:发表于2019-12-07 19:48 被阅读0次

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

    作用

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

    类图

    状态模式

    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 状态模式

        本文链接:https://www.haomeiwen.com/subject/hfzugctx.html