2010-10-15 94 views
5

我查看此讲座(http://www.youtube.com/watch?v=aAb7hSCtvGw&hl=nl),并在约34分钟后,被提及幻灯片上的圆点,说明“文件状态空间非常谨慎”。什么是状态空间?

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

由于

回答

4

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

在音频方面,他基本上是说你需要记录哪些操作是允许在其中规定,如果任何操作改变了对象(这将改变设定允许的操作)的状态。他提到这对可变对象特别重要。

他使用从Java日期和日历作为API的地方,这是一个问题的例子,但没有进入细节。

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

+0

+1为好的答案。一个巨大的“国家空间”让我头部受伤。这就是为什么我更喜欢更多不可变对象和更简单的设计。 – 2010-10-16 04:47:01

1

复述了讲话者说什么,如果对象是可变的,你需要记录的状态空间。然后,他从这个意义上引用Java的日期和日历API,这些API被严重记录在案。

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