2008-11-21 12 views
5

Uno de los inquilinos de DDD es no permitir que sus objetos entren en un estado no válido. Para mí, esto significa que no debe haber un constructor público sin parámetros porque ese va a ser un objeto en un estado inválido el 99% del tiempo.DDD + Constructores sin parámetros públicos: ¿deberían existir?

¿Es esta una buena manera de avanzar? Se convierte en un gran PITA cuando lo que quieres es reactivar una clase muy rápido.

Respuesta

2

Buena pregunta. Tengo amigos DDD nazis que dicen que los constructores sin parámetros son el demonio. Estoy de acuerdo con eso hasta cierto punto, pero también creo que depende del propósito de la clase.

2

Como dijo Kilhoffer, depende de lo que intentes hacer con la clase. ¿En qué circunstancias te gustaría renovar una clase sin inicializar realmente las propiedades? Si tiene métodos de instancia a los que desea llamar, que no requieren ningún dato, puede considerar marcar esos métodos como estáticos o mover los métodos a una clase separada. También es posible que su clase tenga un estado válido adicional, totalmente vacío.

Personalmente, creo en todo con moderación. Si el factor PITA es alto y estás razonablemente seguro de que no vas a tener problemas, parece que los constructores sin parámetros estarían bien. En algún momento, creo que se convierte en una cuestión de opinión.

0

Todo depende de quién llame al constructor. Si solo sus fábricas lo hacen, entonces no hay realmente un problema, porque sus métodos de fábrica se convierten en los constructores del "lado del dominio" y los constructores reales son un detalle de implementación.

Cuestiones relacionadas