2014-03-06 58 views
0

我有一個具有存儲庫層和WebUI層的Web應用程序。在Web應用程序中使用靜態方法的正確方法

基本上我用我從這個存儲庫DLL中獲得的數據填充一些網格。其實即時通訊做這樣的:

private DemoRepository _demoRepository; 

public DemoController() 
{ 
    _demoRepository = new DemoRepository(); 
} 

public ActionResult Demonstration() 
{ 
    return View(_demoRepository.GetAll()); 
} 

我的問題是,事實上,我需要創建一個對象每次,所以我可以使DemoRepository靜態和直接在ActionResult的方法調用:

public ActionResult Demonstration() 
{ 
    return View(DemoRepository.GetAll()); 
} 

但除此之外,我知道在Web應用程序中使用靜態變量並不是一個好習慣,但在這種情況下,即時執行一個方法來獲取一些數據,這是否正確?

+1

[相關閱讀](http://stackoverflow.com/a/4596323/1283847)。這個問題是關於PHP的,但潛在的原因幾乎與平臺無關。 – Leri

回答

1

靜態方法不會傷害只要靜態方法接收方法調用中的所有依賴關係作爲參數,並且不更改方法調用中的存儲庫的全局任何內容。

如果你打算違反以上兩件事之一(即:DI通過屬性或一些魔術連接字符串),那麼我會堅持實例化存儲庫並調用它的GetAll()方法。

相關問題