美文网首页
状态模式实现

状态模式实现

作者: Stroman | 来源:发表于2018-08-26 16:22 被阅读21次

图示

状态模式.png

输出

正在转换状态...
转换到B状态
正在转换状态...
转换到C状态
正在转换状态...
转换到A状态
正在转换状态...
转换到B状态

Process finished with exit code 0

代码

main

package com.company;

public class Main {

    public static void main(String[] args) {
    // write your code here
        StateMachine machine = new StateMachine(new StateA());

        machine.changeState();
        machine.changeState();
        machine.changeState();
        machine.changeState();
    }
}

状态机

package com.company;

public class StateMachine {
    private State machineState;

    public StateMachine(State machineState) {
        this.machineState = machineState;
    }

    public void setMachineState(State machineState) {
        this.machineState = machineState;
    }

    public void changeState() {
        System.out.println("正在转换状态...");
        this.machineState.changeToNextState(this);
    }
}

状态的抽象接口

package com.company;

public interface State {
    void changeToNextState(StateMachine machine);
}

A状态

package com.company;

public class StateA implements State {
    @Override
    public void changeToNextState(StateMachine machine) {
        machine.setMachineState(new StateB());
        System.out.println("转换到B状态");
    }
}

B状态

package com.company;

public class StateB implements State {
    @Override
    public void changeToNextState(StateMachine machine) {
        machine.setMachineState(new StateC());
        System.out.println("转换到C状态");
    }
}

C状态

package com.company;

public class StateC implements State {
    @Override
    public void changeToNextState(StateMachine machine) {
        machine.setMachineState(new StateA());
        System.out.println("转换到A状态");
    }
}

相关文章

  • 状态模式实现

    图示 输出 代码 main 状态机 状态的抽象接口 A状态 B状态 C状态

  • 设计模式---StateMode

    一、什么是StateMode(状态模式) 状态模式与上一篇写的《设计模式---Strategy模式》具体实现结构有...

  • 设计模式-状态

    这里介绍一下设计模式中的状态模式在iOS中的实现。 状态模式(State Pattern):允许对象内部状态发生改...

  • 状态模式

    一. 什么是状态模式 状态模式是状态机的一种实现方式. 状态机又叫有限状态机(FSM) 状态模式不常用, 有点像组...

  • 状态模式(分离状态,选择实现)

    公告 如果您是第一次阅读我的设计模式系列文章,建议先阅读设计模式开篇,希望能得到您宝贵的建议。 前言 随着上文 装...

  • 64 - 状态模式

    状态模式一般用来实现状态机,而状态机常用在游戏、工作流引擎等系统开发中。不过,状态机的实现方式有多种,除了状态模式...

  • 彻底搞懂Spring状态机原理,实现订单与物流解耦

    本文节选自《设计模式就该这样学》 1状态模式的UML类图 状态模式的UML类图如下图所示。 2使用状态模式实现登录...

  • 策略模式与状态模式

    状态模式 状态模式将状态的切换交由具体的处理节点做判断, 容器只提供执行上下文 类模式实现 策略模式 调用具体执行...

  • 设计模式之状态模式实现

  • 状态模式

    概述 当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。 状态模式的实现 通过状态模式来实现...

网友评论

      本文标题:状态模式实现

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