Цепочка конструктора (внедрение зависимых от бедного человека)
public Bll() : this (new Dal()) { }
public Bll(IDal dal) // to provide other IDal implementations if needed
{
this.dal = dal;
}
Заводские методы
private Bll() { }
public static Bll Create()
{
IBll bll = new Bll();
bll.Dal = new Dal();
return bll;
}
Внедрение зависимости с помощью инструментов IoC (поищите в интернете, рамки для этого многочисленны, либос использованием XML-инъекций на основе конфигурации или внутриязыкового языка ... - ищите Castle Windsor, Spring.Net, Unity, StructureMap, Autofac, Ninject ...).Рекомендуется использовать более продвинутые шаблоны проектирования / архитектуру приложения (например, некоторые вариации MVC, чтобы не создавать экземпляры объектов в обработчиках событий презентации), хотя вы уже начинаете разрабатывать хороший код, разделяя DAL, BLL и т. Д.Читать: Шаблоны проектирования GoF и общие сведения об архитектурах приложений