2012-01-15 36 views
1

在過去的幾個月中,我一直專注於清理我的代碼以實現可讀性目的。隨着我的應用程序變得越來越大,重要的是我掌握了我的變量,類,方法等。使用全局變量或將方法參數傳遞給方法變量的最佳實踐?

這就是說,我經常質疑我決定創建一個全局變量,而不是傳遞一個方法參數並創建一個方法變量。我發現創建本地方法變量通過「隱藏開銷」清除了我的代碼的其餘部分,但是,我發現需要權衡跟蹤和理解傳遞方法參數的流程。

最後,我相信最好的做法歸結爲在儘可能低的水平,可能通過初始化變量,創建最小的開銷,主要有:

  • 一個應該只使用其中的多種方法需要變量全局變量。
  • 應該使用方法參數和方法變量,其中變量只在所述方法中需要,因此對於所述方法是局部的。

難道這是處理全局變量和方法變量的簡單邏輯方法嗎?任何有關這一思路的建議都將非常感謝。隨着我的代碼開始發展到數百種方法,我需要更加謹慎地以最合乎邏輯的方式創建我的變量。

謝謝您的諮詢!

回答

0

在我所知的大多數編程語言中,使用全局變量被認爲是不好的編程習慣。只要可能,你應該使用參數。如果你需要的東西像singleton模式。

0

如果你想存儲一些全局的東西,你應該擴展Application類,它是Android中的某種會話。在這個課堂上,你可以儲存全球的一切。

並且不要使用singleton,這在Android中是不好的做法,請使用Application類。

0

這不是一個簡單的問題來回答幾句話。使用全局變量是一種不好的做法。它導致代碼緊密耦合,並且使其修改或增強非常困難。大量全局變量的需求是您需要關注於您的設計的一個指標。

你提到你的代碼有數百種方法。你有幾堂課?如果你在一個班上有數百種方法,那麼這個班就有太多的責任。你的設計應該專注於具有明確職責的課程。每個班級只應具備處理這些責任所需的數據。這反過來會導致全局變量的數量減少。如果數據顯然是一個類的責任,那麼它不應該是全球性的,並且可以被其他類訪問。

+0

我明白你的答案,但我的全局變量代表我的數據庫中的字段。我選擇使用全局變量,而不是對字段進行硬編碼,因爲有時我會更改字段的名稱,並且通過我的所有代碼並對其進行修改會很痛苦。 你是否建議存儲我的表字段名稱的不同路線? – AutoM8R 2012-01-18 02:22:25

+0

那麼你可以簡單地爲字段名稱做一些定義,並在你的所有代碼中使用它們。如果有時你必須改變一個字段的名字,你只需要改變那個定義 – gekod 2012-10-31 08:53:36

相關問題