美文网首页
状态模式

状态模式

作者: 金煜博 | 来源:发表于2021-05-08 21:59 被阅读0次

    什么是状态模式

    通过不同的状态,动态调用不同的对象,完成不同的行为
    (状态模式与策略模式挺相似,但是状态模式是没有共同的行为,策略模式是有共同的行为)

    示例图

    图片.png

    示例代码

    1.创建抽象的状态接口 AbstractState

    public  interface AbstractState {
        String orderState();
    }
    

    2.创建派单类StateA

    public class StateA implements AbstractState {
        @Override
        public String orderState() {
            return "派单中...";
        }
    }
    

    3.创建派送类StateB

    public class StateB implements AbstractState{
        @Override
        public String orderState() {
            return "派送中...";
        }
    }
    

    4.创建签收类StateC

    public class StateC implements AbstractState {
        @Override
        public String orderState() {
            return "已签收...";
        }
    }
    

    5.创建上下文类ContextState

    public class ContextState {
       private AbstractState abstractState;
        public ContextState(AbstractState abstractState) {
            this.abstractState = abstractState;
        }
    
        public String getOrderContextState(){
           return abstractState.orderState();
        }
    }
    

    6.创建启动类

    public class Test {
        public static void main(String[] args) {
            ContextState contextState = new ContextState(new StateA());
            String str = contextState.getOrderContextState();
            System.out.println(str);
            ContextState contextState1 = new ContextState(new StateB());
            String str1 = contextState1.getOrderContextState();
            System.out.println(str1);
            ContextState contextState2 = new ContextState(new StateC());
            String str2 = contextState2.getOrderContextState();
            System.out.println(str2);
        }
    }
    

    7.运行结果


    图片.png

    相关文章

      网友评论

          本文标题:状态模式

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