2010-02-11 27 views
0

在我的wpf應用程序中,我使用了很多爲高速緩存而聲明爲靜態的對象。 只是想知道是否有任何缺點。wpf應用程序中的靜態對象

+0

哦,從哪裏開始?靜力學是邪惡的... –

回答

0

我幾乎從不使用靜態數據,因爲添加工作線程時會遇到固有的問題。

如果你只想要一個可以被對象訪問的東西的實例,那麼Singleton模式可能會有幫助。你可能想閱讀Singletons in C#這篇有用的文章。

還有一個框架可以使請求服務真的很容易。您可以設置框架爲您提供服務的新實例,或每次都提供相同的服務。問題是我不記得它叫什麼,並且如果別人可以評論這個,我會很感激它,因爲我想再次閱讀它。我認爲這是Unity或Prism,但我不確定。我知道後面的框架是爲了設置你的應用程序時考慮到MVVM原則。

0

一個缺點是一個類的靜態成員沒有完整的懶惰實例化。靜態構造函數將在第一次訪問該類的任何成員時運行。這可能會或可能不會成爲您的重大關切。

在我看來,一個更大的問題是靜態對單元測試並不好。假設您正在嘗試爲另一個類編寫單元測試,該類引用這些靜態對象。您無法爲這些對象設置模擬。你不得不使用真實的東西,這可能最終迫使你啓動大部分系統,在這種情況下,它不再是單元測試,而是集成測試。

我不認爲你需要完全避免static關鍵字;只要注意你這樣做對你的程序的限制。而使用Singleton並不是唯一的選擇。您可以簡單地選擇遵循"just create one"政策。 :)

相關問題