我正在观看本次讲座(http://www.youtube.com/watch?v=aAb7hSCtvGw&hl=nl),在大约 34 分钟时,提到了幻灯片上的一个要点,说明“非常仔细地记录状态空间”。
什么是状态空间?为什么我必须“非常仔细地”记录它?不幸的是,我现在发布的机器上没有声音,但是幻灯片本身对我的学习非常有用(如果有声音,它会更有帮助)。
谢谢
我正在观看本次讲座(http://www.youtube.com/watch?v=aAb7hSCtvGw&hl=nl),在大约 34 分钟时,提到了幻灯片上的一个要点,说明“非常仔细地记录状态空间”。
什么是状态空间?为什么我必须“非常仔细地”记录它?不幸的是,我现在发布的机器上没有声音,但是幻灯片本身对我的学习非常有用(如果有声音,它会更有帮助)。
谢谢
状态空间是一组可能的状态,在这种情况下是一个对象。
在音频中,他基本上是说您需要记录在哪些状态下允许哪些操作,以及是否有任何操作改变了对象的状态(这将改变允许的操作集)。他提到这对于可变对象尤其重要。
他使用 Java 中的 Date 和 Calendar 作为 API 的示例,其中存在问题,但没有详细说明。
举一个具体(但简化)的例子,考虑一个 TCP 连接。那基本上有两种状态,打开或关闭。当它关闭时,您无法通过它发送或接收任何内容,因此不允许调用这些方法。
套用说话者所说的话,如果对象是可变的,则需要记录状态空间。然后,他引用了 Java 的 Date and Calendar API 在这个意义上被记录得很差。
我猜他的意思是你需要记录任何可以修改代码状态的函数。此外,何时是调用这些函数的好(或坏)时间。例如,read()
在对象为closed()
.