5

我正在观看本次讲座(http://www.youtube.com/watch?v=aAb7hSCtvGw&hl=nl),在大约 34 分钟时,提到了幻灯片上的一个要点,说明“非常仔细地记录状态空间”。

什么是状态空间?为什么我必须“非常仔细地”记录它?不幸的是,我现在发布的机器上没有声音,但是幻灯片本身对我的学习非常有用(如果有声音,它会更有帮助)。

谢谢

4

2 回答 2

4

状态空间是一组可能的状态,在这种情况下是一个对象。

在音频中,他基本上是说您需要记录在哪些状态下允许哪些操作,以及是否有任何操作改变了对象的状态(这将改变允许的操作集)。他提到这对于可变对象尤其重要。

他使用 Java 中的 Date 和 Calendar 作为 API 的示例,其中存在问题,但没有详细说明。

举一个具体(但简化)的例子,考虑一个 TCP 连接。那基本上有两种状态,打开或关闭。当它关闭时,您无法通过它发送或接收任何内容,因此不允许调用这些方法。

于 2010-10-16T00:14:27.867 回答
1

套用说话者所说的话,如果对象是可变的,则需要记录状态空间。然后,他引用了 Java 的 Date and Calendar API 在这个意义上被记录得很差。

我猜他的意思是你需要记录任何可以修改代码状态的函数。此外,何时是调用这些函数的好(或坏)时间。例如,read()在对象为closed().

于 2010-10-16T00:16:38.973 回答