Cuando creo clases, los constructores simples tienden a ser la norma. En uno de mis proyectos actuales, una biblioteca de películas, tengo un objeto de dominio Movie
. Cuenta con una serie de propiedades, lo que resulta en un constructor de la siguiente manera:Construir un objeto (algo) complejo
public Movie(string title, int year, Genre genre, int length, IEnumerable<string> actors)
{
_title = title;
_year = year;
_genre = genre;
_length = length;
_actors = new List<string>(actors);
}
Esto no es terrible, pero no es fácil tampoco. ¿Valdría la pena utilizar un método de fábrica (static Movie CreateMovie(...)
) o quizás un generador de objetos? ¿Hay algún patrón típico para crear instancias de clases de dominio?
ACTUALIZACIÓN: gracias por las respuestas. Probablemente estaba pensando demasiado en el asunto inicialmente, aunque aprendí algunas cosas que serán útiles en situaciones más complejas. Mi solución ahora es tener el título como el único parámetro requerido, y el resto como parámetros nombrados/opcionales. Esta parece ser la forma ideal para construir este objeto de dominio.
Su propia solución a su pregunta no debe publicarse como una actualización de su pregunta. Debería ser una respuesta, o en este caso, probablemente un comentario. –