【说明】
传输门是传输系统中的重要装置。传输门具有Open(打开)、Closed(关闭)、Opening(正在打开)、StayOpen(保持打开)和Closing(正在关闭)5种状态。触发状态的转换事件有click、complete和timeout 3种,事件与其相应的状态转换如图6-18所示。
问答题 【问题2】
请用150字以内的文字简要说明【C++代码1】、【C++代码2】这两种对传输门进行状态模拟的设计思路的区别之处。
【正确答案】代码2将状态间的转换规则封装到具体的类中,当状态转换图的转换规则发生变化时,只需更改部分对应类中的状态迁移规则,而代码1中的迁移规则散落在程序中,维护起来较为困难。
注:答案类似即可
【答案解析】[要点解析]
【C++代码1】和【C++代码2】区别是,【C++代码2】将状态间的转换规则封装到具体的类中,当状态转换图的转换规则发生变化时,只需更改部分对应类中的状态迁移规则即可,这样更易于维护、移植。由于【C++代码1】中的迁移规则散落在程序中,因此维护起来较为困难。