2014-02-06 42 views
1

我常常感到困惑的設計期限providerfactory。下面是我的代碼,根據提供的名稱選擇不同的數據庫上下文。我在這裏使用了工廠模式,所以我將其命名爲DataContextFactory。這是正確的嗎?或者我需要將其更改爲DataContextProvider?這是否意味着不同的實現?數據提供程序或工廠

public class DataContextFactory 
{ 
    public static DataContext GetDataContext(string databaseName) 
    { 
     switch (databaseName.ToLower()) 
     { 
      case "app": 
       return new ApplicationDataContext(); 
      case "customer": 
       return new CustomerDataContext(); 
      default: 
       return new TestDataContext(); 
     } 
    } 
} 

https://stackoverflow.com/a/1849645/1559213這一個困惑我

回答

0

我的兩分錢:取決於你想要得到,如果你想獲得的數據,然後創建一個數據提供者,如果你想要的背景下,你可以什麼使用上下文工廠。更有可能你會最終使用兩者。您可以在使用上下文爲您提供數據的數據提供程序中注入上下文。

1

IMHO,一般來說 - 提供商「規定」除了創建/建築物對象例如任何功能(通常是高度專業化的) DataProvider或SecurityProvider。對於創建/建築有分開的抽象(模式),如工廠/ FactoryMethod /生成器等等

+0

雙擊它僅僅指剛。因此,在這種情況下,它是工廠,因爲它實際上創建了什麼是提供程序(存儲庫)。 – TomTom

2

在一般情況下,我會說這並不重要。更重要的是你的命名是一致的。

如果你的名字Provider它仍然是一個工廠模式。工廠模式並不一定意味着你需要與工廠的後綴,你選擇如何命名的東西,只要很明顯你的代碼的用戶它在做什麼你沒事

+0

This [answer](http://stackoverflow.com/a/1849645/1559213)困惑我:( – Billa

+0

什麼都不會混淆。你有什麼工廠....和DataContext ist然後提供者。 – TomTom

相關問題