引言
在面向对象程序设计与分析的过程中最终都将把需求分解为多个类再进行程序编码,因此类的设计是程序设计的基础,对于多数项目而言可以划分MVC的三层模型来进行实现,
状态机在类设计中的应用
。对应类的描述而言可以分如下三种类型的类设计1》边界类:负责与用户进行交互,对于MVC中的View部分
2》控制类:负责业务逻辑处理,对于MVC中的C部分
3》实体类:负责对数据的抽象与存储部分,通常对应于数据库的表,对于MVC中的M部分
1 状态机基础知识
状态机可以形式化定义为一个五元组DFA=(S,
1.1 状态机的分类
1》按输出个数多少可分为确定有穷状态机和非确定有穷状态机两种,当在相同状态和输入的条件下只有唯一输出状态的称为确定有穷状态机,
2》按输出依赖的条件可分为Mealy机和Moor机,Mealy机的输出依赖于当前的状态和输入,
电脑资料
《状态机在类设计中的应用》(https://www.unjs.com)。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 状态机的应用