Chinaunix首页 | 论坛 | 博客
  • 博客访问: 643989
  • 博文数量: 151
  • 博客积分: 3498
  • 博客等级: 中校
  • 技术积分: 1570
  • 用 户 组: 普通用户
  • 注册时间: 2005-02-28 18:10
文章分类

全部博文(151)

文章存档

2014年(12)

2013年(17)

2012年(17)

2011年(5)

2010年(12)

2009年(2)

2007年(26)

2006年(22)

2005年(38)

分类: IT职场

2014-11-09 00:42:36

状态机的理论基础:

有限状态机(Finite State Machine)系统,是指在不同阶段会呈现出不同的运行状态的系统,这些状态是有限的、不重叠的。这样的系统在某一时刻一定会处于其

所有状态中的一个状态,此时它接收一部分允许的输入,产生一部分可能的响应,并且迁移到一部分可能的状态。

状态机的五元组元素:

1.State(状态)

State(“状态”),就是一个系统在其生命周期中某一时刻的运行情况,此时,系统会执行一些动作,或者等待一些外部输入。

2. Guard(条件)

状态机对外部消息进行响应的时候,除了需要判断当前的状态,还要判断跟这个状态相关的一些条件是否成立。这种判断称为guard(“条件”),guard通过允许或者禁止某些操作来影响状态机的行为。

3. Event(事件)

Event(“事件”),就是在一定的时间和空间上发生的对系统有意义的事情。

4. Action(动作)

当一个Event被状态机系统分发的时候,状态机用Action(“动作”)来进行响应

5 .Transition(迁移)

从一个状态切换到另一个状态被称为Transition(“迁移”)。引起状态迁移的事件被称为triggering event (“触发事件”),或者被简称为trigger (“触发”)。

 

在这个五元组中,人们往往忽略了在状态下面需要执行动作的条件和执行响应的动作。

 

年龄变化的状态机:

为什么要用状态机来设计一个人的年龄变化,一方面当然是学以致用,另外一方面可以把复杂的问题图形化后变得简单和容易理解。

稍微解释一下这个状态机,首先把人生分成了4个状态,分别是Baby期,中学期,大学期,社会期。我定义的每一个状态的迁移事件也都是很有意思的,six years事件是标准的九年制义务教育的入学年龄,law person事件,是一个人承担法律责任的开始,而society man事件表明人已经走入社会了,可以去实现自己的梦想了。每一个状态下面的响应动作,也是一个人要在这个期间要做的主要事情。

日常行为状态机:

一个人要想成功,那么他的日常行为就起着决定性的作用,你是否还在为某些事情苦恼和犹豫,那么看看状态机吧。

对比一下,每个人都不一样,可以做的更详细,坚持下来,你will be victory!


附件是一个 程序语言的状态机设计的例子,跨界应用过后,才发现如此有趣。c语言状态机资料.rar

 

阅读(1127) | 评论(0) | 转发(0) |
0

上一篇:diff and patch

下一篇:没有了

给主人留下些什么吧!~~