有限状态机(FSM)的Java 演示

  • Post author:
  • Post category:java


本文从简单的例子入手,逐步演变成非常复杂的程序。



简明 状态模式(5.8)

中,状态之间的变换由外界控制,或者说,多种状态是分割的、无关的。状态模式最有趣的地方正是讨论其状态的变迁。

1.引子

空调(air-condition)的遥控器有


两个按钮


(更多的按钮
奋斗
在后面的例子中引入),


power/电源键和cool/制冷键


。空调的运行呈现


3个状态,停止/Off、仅送风/FanOnly、制冷/Cool。


起始状态为Off,状态变化图如下所示。

这是简化的有限状态机(Finite State Machine、FSM或者Finite State Automata)图形,使用了状态图的3个元素:①气泡,表示状态(

state

);②连接状态的箭头表示转换(

transition

);③箭头上的标记前者为事件(

event

)。


状态的转换,看图说话。按power键,则Off→FanOnly、Cool→Off等;按cool,则Off→Off (没有画出来,喜欢全面一点就自己画吧)。

对于这种简单的状态的转换,yqj2065还是喜欢

分支语句


微笑
,简洁明快。

例程 4-5 简洁明快
package property.state.stateMachine;
import static tool.Print.*;//pln
/**
 * 空调Aircon。简单的模型:
 * 遥控器有两个按钮(更多的按钮在下面的例子中引入),power电源键和cool制冷键。
 * 空调的运行呈现3个状态,停止/Off、仅送风/FanOnly、制冷/Cool。
 * 起始状态为Off
 * @author (yqj2065) 
 * @version 0.1
 */
public class Aircon0{
    // off࿰



版权声明:本文为yqj2065原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。