Estoy aprendiendo sobre DDD y me he encontrado con la afirmación de que los "objetos de valor" deberían ser inmutables. Entiendo que esto significa que el estado de los objetos no debería cambiar después de haber sido creado. Esta es una especie de nueva forma de pensar para mí, pero tiene sentido en muchos casos.Cómo diseñar un objeto inmutable con inicialización compleja
Ok, entonces empiezo a crear objetos de valor inmutables.
- me aseguro de que tomen todo el estado como parámetros al constructor,
- no añado emisores de propiedad,
- y asegúrese de que no se permiten los métodos de modificar el contenido (sólo volver nuevos casos)
Pero ahora quiero crear este objeto de valor que contendrá 8 valores numéricos diferentes. Si creo un constructor que tenga 8 parámetros numéricos, creo que no será muy fácil de usar, o más bien, será fácil cometer un error al pasar los números. Esto no puede ser un buen diseño.
Así que la pregunta es: ¿Hay alguna otra forma de mejorar mi objeto inmutable ... alguna magia que se pueda hacer en C# para superar una larga lista de parámetros en el constructor? Estoy muy interesado en escuchar sus ideas ..
ACTUALIZACIÓN: Antes de que nadie lo menciona, una idea se ha discutido aquí: Immutable object pattern in C# - what do you think?
estaría interesado en escuchar otras sugerencias o comentarios sin embargo.
También debe hacer que todos los campos sean solo de lectura. Hace que la inmutabilidad sea más declarativa – JaredPar