Tengo dificultades para entender lo que mi clase de fábrica debería hacer en mi proyecto DDD. Sí, se debe usar una fábrica para crear objetos, pero qué debería estar haciendo exactamente. Considere la siguiente clase de fábrica:¿Qué métodos deberían ir en mi clase de fábrica DDD?
public class ProductFactory
{
private static IProductRepository _repository;
public static Product CreateProduct()
{
return new Product();
}
public static Product CreateProduct()
{
//What else would go here?
}
public static Product GetProductById(int productId)
{
//Should i be making a direct call to the respoitory from here?
Greener.Domain.Product.Product p = _repository.GetProductById(productId);
return p;
}
}
¿Debo hacer una llamada directa al depósito desde la fábrica?
¿Cómo debo gestionar la creación de objetos cuando recupero datos de una base de datos?
¿Qué necesito para completar esta clase? ¿Qué otros métodos debo tener?
¿Debo utilizar esta clase para crear el objeto del producto desde el dominio y el depósito desde la derecha?
Por favor ayuda!
No ponga la lógica repositorio en su fábrica. – mbillard