我對這個區別有一個總的直覺,但是我無法準確地確定是什麼使數據庫與全局狀態不同。爲什麼數據庫不是一種全局狀態?
隨着「全局狀態」天真的定義,數據庫通常至少應用程序全局。你可以想象有一個應用程序可以在執行中改變數據庫,但在一般情況下,它是全局使用的。
至於狀態,我不認爲我需要認爲,一個數據庫包含狀態的情況。
那麼是什麼讓數據庫與「糟糕」的全局狀態不同呢?
這個問題上來,因爲我試圖避免緊耦合,其中一個對象需要知道它的母公司。例如,假設你正在玩策略遊戲,並且你的一個單位有能力說明它在對敵方單位造成傷害時,該單位的所有者失去了x金,其中x是受到的傷害量。
那麼,在正常情況下,單位不應該知道它是誰的所有者。擁有者是控制單位的人,所以擁有者只需向單位發出命令,它就可以完成任務。
但是,由於外部因素,需要找出誰是一個單位的所有者。在這種情況下,攻擊單位知道它正在攻擊的單位,沒關係。但是現在除了知道它所攻擊的單位之外,它還必須知道它是所有者,才能使所有者失去5金。
我已經從原始問題中分離出了比我想要的更多的東西,但是如果遊戲的狀態存儲在關係數據庫中,那麼查詢目標的所有者就會很簡單,而不需要直接知道誰他們的主人是。如果這樣的數據庫是一個對象,那麼我會將該數據庫稱爲上帝對象,因爲它知道所有事物的整個狀態,並且是可變的。
什麼使數據庫不同於全局狀態?
我的解釋是否正確:「是的,它是全球性的國家,但它是一個經過嚴格審查的形式,可以解決比創造更多問題」? – Davy8 2011-04-23 15:01:48
我想,這取決於觀衆和你的目的。 – 2011-04-23 23:53:21