Ответ 1
Шаблон factory: объект, который нуждается в ссылке на службу, должен знать о factory, который создает Сервис:
public class BLLObject
{
public IDal DalInstance { get; set; }
public BLLObject()
{
DalInstance = DalFactory.CreateSqlServerDal();
}
}
Шаблон Ioc (или инъекция зависимостей):
объект должен только заявить о своей потребности в службе, используя любые аспекты шаблона Ioc (конструктор, сеттер или интерфейс... и т.д.), и контейнер попытается выполнить эту потребность:
public class BLLObject
{
public IDal DalInstance { get; set; }
public BLLObject(IDal _dalInstance)
{
DalInstance = _dalInstance;
}
}
что означает, что в шаблоне factory объект решает, какой метод создания (путем выбора конкретного конкретного factory) для использования, но в шаблоне Ioc это зависит от выбранного контейнера.
Конечно, это не единственное уважение, но это то, что на мой взгляд на данный момент. исправьте меня, пожалуйста, если я ошибаюсь?