2008-11-09 60 views
1

我有一個初始化類,將內容預加載到一個變量(可能是一個列表或數組)。這個初始化類只有一個實例,但是會有很多需要訪問預加載內容的類。全局變量訪問解決方案的想法

問題不是很多都是相關的,它們都沒有擴展我的初始化類。我想了一下,決定使用靜態方法和變量來實現這個用途。所以像這樣...

public class InitClass 
{ 
    static List PreloadedContent; 

    static ModelData GetContent(String ContentName) 
    { 
      //return the preloaded content that matches given name 
    } 
} 

預裝的內容可能在某個時候減少或增加的大小取決於情況可能要求。我遇到過類似這樣的情況,但它是唯一看起來不錯的解決方案;我認爲它是一個醜陋的解決方案。

注意:由於各種原因,我無法將數據加載到創建時所需的類上 - 其中大部分原因我還不知道,但很可能會出現。某些類將根據場景的渲染進行加載/卸載,而且我的InitClass在大多數情況下不會處理這些對象的創建。

任何人都可以給我一個更好的解決方案嗎?

回答

0

要避免靜態/全局範圍,您可以使用某種註冊表類。這意味着你有一個在程序啓動時初始化的類。這個類保存了所有其他需要全局訪問的類的引用。 現在您將註冊表類的初始化實例傳遞給應用程序中的所有實例。 這不是一個非常漂亮的解決方案,但對我來說它是最好的。對於靜態和全局變量,當測試或調試代碼時,我總是遇到一些問題。

另一個問題是使用單例。既然他們也只是持有一個靜態實例,我不會更喜歡他們。