第六章:面向软件构造的可复用性的构建方法
第三节:面向可维护性的构造技术
问题一:面向可维护性构造的分类
- 基于状态的构造(State-based construction)
- 表驱动的构造(Table-driven construction)
- 基于语法的构造(Grammar-based construction)
问题二:基于状态的构造(State-based construction)
基于状态的编程:使用有限状态机来定义程序的行为、控制程序的执行(根据当前状态,决定下一步要执行什么操作、执行操作之后要转移到什么新的状态)
1.基于自动化的编程(Automata-based programming)
核心思想:将程序看作是一个有限状态自动机,侧重于对“状态”及“状态转换”的抽象和编程
方法:程序的执行被分解为一组自动执行的步骤。各步骤之间的通讯通过“状态变量”进行。程序执行就可看作是各自动步骤的不断循环。使用枚举类型enum定义状态。使用二维数组定义状态转换表。(See Wikipedia: https://en.wikipedia.org/wiki/State_transition_table)
2.状态模式(State Pattern)
模式图:
*例: