2010-10-15 106 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()函數。