2010-10-10 4 views
0

Я довольно новичок в .net и создаю веб-приложение для учебных целей. У меня есть 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

Там действительно нет никаких причин, чтобы не просто создать новый instace в DAL, завод не достигает ничего здесь.

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

Hi paul, спасибо за быстрый ответ. В контексте я делаю простой CMS. Было бы лучше в долгосрочной перспективе с точки зрения ремонтопригодности, например, если бы я использовал более общий завод, такой как Марк, или пойти с вашим предложением? – gdp

+0

Factory Pattern отлично работает, когда есть какая-то логика, связанная с созданием объекта, но для простого экземпляра это бессмысленно. Для удобства обслуживания я бы передал DAL в конструктор и использовал инъекцию зависимостей. –

+0

Хорошо, я понимаю, какая логика должна принадлежать фабричной схеме? – gdp

1

Да, используйте Generic ограничение поэтому нет необходимости передавать тип в вообще:

public DataAccess 
{ 
    public static T GetInstance<T>() where T : new() 
    { 
     return new T() 
    } 
}