2010-10-10 165 views
0

我對.NET相當陌生,並且正在爲學習目的創建一個Web應用程序。我有一個非靜態方法的DAL。我的問題是,我應該如何在業務層訪問這些方法?訪問非靜態DAL方法

我不知道這是否是一個好的或壞的方式,但目前我使用這個類來創建的DAL方法實例:

public DataAccess 
{ 
    public static T GetInstance<T>(Type type) 
    { 
     return (T)Activator.CreateInstance(type); 
    } 
} 

而且我在DLL使用情況如下:

public void Save(Article article) 
{ 
    ArticleDAL art = DataAccess.GetInstance<ArticleDAL>(typeof(ArticleDAL)); 
    art.Save(article); 
} 

任何改進或建議?

回答

1

實在沒有理由不只是創建DAL的新instace,工廠沒有實現這裏有什麼。

public void Save(Article article) 
{ 
    ArticleDAL art = new ArticleDAL(); 
    art.Save(article); 
} 
+0

嗨保羅,感謝您的快速回復。上下文是我正在做一個簡單的CMS。就可維護性而言,從長遠來看,如果我使用了像Mark這樣的更通用的工廠,或者採納了您的建議,會不會更好? – gdp 2010-10-10 17:29:59

+0

工廠模式在創建對象時有一些邏輯,但對於簡單的實例化而言毫無意義。爲了可維護性,我將DAL傳遞給構造函數並使用依賴注入。 – 2010-10-10 18:38:36

+0

好吧,我明白,工廠模式應該屬於哪種邏輯? – gdp 2010-10-10 19:02:28

1

是,使用通用約束所以沒有必要通過類型在所有:

public DataAccess 
{ 
    public static T GetInstance<T>() where T : new() 
    { 
     return new T() 
    } 
} 
相關問題