状态机在类设计中的应用 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

   

引言

    在面向对象程序设计与分析的过程中最终都将把需求分解为多个类再进行程序编码,因此类的设计是程序设计的基础,对于多数项目而言可以划分MVC的三层模型来进行实现,

状态机在类设计中的应用

。对应类的描述而言可以分如下三种类型的类设计

    1》边界类:负责与用户进行交互,对于MVC中的View部分

    2》控制类:负责业务逻辑处理,对于MVC中的C部分

    3》实体类:负责对数据的抽象与存储部分,通常对应于数据库的表,对于MVC中的M部分

1 状态机基础知识

    状态机可以形式化定义为一个五元组DFA=(S,Σ,t,s0,F)其中,S是非空的有穷状态集,Σ是有穷输入字母表,t是一个映射S×Σ→S,s0∈S是开始状态,F?S是非空终止状态集。

1.1 状态机的分类

    1》按输出个数多少可分为确定有穷状态机非确定有穷状态机两种,当在相同状态和输入的条件下只有唯一输出状态的称为确定有穷状态机si=t(Si,σi)。有多个输出状态的称为非确定有穷状态机,(si,sj,...sn)=t(Si,σi)。其中(si,sj,...sn)?S

    2》按输出依赖的条件可分为Mealy机Moor机Mealy机的输出依赖于当前的状态和输入,si=t(Si,σi),

电脑资料

状态机在类设计中的应用》(https://www.unjs.com)。Moor机的输出只依赖于状态,si=t(Si)。因此Mealy机主要应用于描述事件类型输出的状态模型,很适合对于边界类的建模。而Moor机主要应用于在特定状态下有持续输出的模型。

1.2 状态机的表示法

    状态机的表示法一般有状态转换图,状态图和状态转换表三种。在与状态高度相关的系统中,这些表示法非常有助于提供一种视角来帮助分析和理解系统的复杂性。

    1-状态转换图表示:

   

    2-状态转换表<喎?http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjx0YWJsZT4NCjx0aGVhZD4NCgk8dHI+DQoJPHRoPg0KCQnXtMysXMrkyOux7TwvdGg+DQoJPHRoPg0KCQlhPC90aD4NCgk8dGg+DQoJCWI8L3RoPg0KCTwvdHI+DQo8L3RoZWFkPg0KPHRib2R5Pg0KCTx0cj4NCgk8dGQ+cTA8L3RkPg0KCTx0ZD5xMTwvdGQ+DQoJPHRkPnEzPC90ZD4NCgk8L3RyPg0KCTx0cj4NCgk8dGQ+cTE8L3RkPg0KCTx0ZD5xMDwvdGQ+DQoJPHRkPnEyPC90ZD4NCgk8L3RyPg0KCTx0cj4NCgk8dGQ+cTI8L3RkPg0KCTx0ZD5xMzwvdGQ+DQoJPHRkPnExPC90ZD4NCgk8L3RyPg0KCTx0cj4NCgk8dGQ+cTM8L3RkPg0KCTx0ZD5xMjwvdGQ+DQoJPHRkPnEwPC90ZD4NCgk8L3RyPg0KPC90Ym9keT4NCjwvdGFibGU+DQo8aDMgaWQ9"12-状态机的应用">1.2 状态机的应用

最新文章