1. 程式人生 > >為什麽全局變量不好?[翻譯]

為什麽全局變量不好?[翻譯]

全局變量 ring 狀態 exc http 訪問 代碼 改變 global

//來自:https://softwareengineering.stackexchange.com/questions/148108/why-is-global-state-so-evil

首先,全局變量讓程序的狀態變得不可預測。

詳細地說,比如有兩個對象都用到了同一個全局變量,但是假設我們沒有用全局變量(也就是排除了隨機性變量)它的代碼是確定的,對於特定的輸入那麽就可以預測方法的輸出(這也稱為測試)。但是現在兩個對象共享一個全局變量,那麽如果一個對象中改變了這個全局變量,將對另一個對象的起始狀態有影響,將不能預測它的輸出。這樣就不利於單元測試了。

如果代碼依賴於外來的全局變量,那麽就破壞了代碼的可信度。還存在並發訪問沖突的問題。

任何人都可以改變全局變量,所以它是不可靠的。

為什麽全局變量不好?[翻譯]