El patrón de la fábrica: el objeto que necesita una referencia a un servicio, debe saber acerca de la fábrica que crea el Servicio:
public class BLLObject
{
public IDal DalInstance { get; set; }
public BLLObject()
{
DalInstance = DalFactory.CreateSqlServerDal();
}
}
El patrón de la COI (o la inyección de dependencias):
el objeto solo necesita declarar su necesidad al servicio, usando cualquier aspecto del Patrón Ioc (Constructor, instalador o interfaz ... etc) y el contenedor intentará cumplir con esta necesidad:
public class BLLObject
{
public IDal DalInstance { get; set; }
public BLLObject(IDal _dalInstance)
{
DalInstance = _dalInstance;
}
}
lo que significa que en el patrón de la fábrica, el objeto decide qué método de creación (por la elección de una fábrica de hormigón específico) para utilizar, pero el patrón en el COI, que es hasta el contenedor para elegir.
por supuesto, esta no es la única deferencia, pero esto es lo que tengo en mente por el momento. corrígeme por favor si me equivoco?
¿Se refiere a "patrón de fábrica" o "patrón abstracto de fábrica"? (Este último está más cerca en significado a IoC.) – Enigmativity
Duplicado: http://stackoverflow.com/questions/557742/dependency-injection-vs-factory-pattern –
@Mark La pregunta bien puede ser un duplicado, pero desafortunadamente no tiene respuesta aceptada –