Intento seguir DDD, o al menos mi limitado entendimiento de esto.DDD: ¿Debería encajar todo en Entidad u Objeto de valor?
Aunque tengo problemas para instalar algunas cosas en las cajas de DDD.
Un ejemplo: tengo una entidad de usuario. Esta entidad de usuario tiene una referencia a un objeto UserPreferencesInfo; esta es solo una clase que contiene un conjunto de propiedades relacionadas con las preferencias del usuario. Estas propiedades no tienen ninguna relación, aparte del hecho de que todas son preferencias del usuario (a diferencia, por ejemplo, una dirección VO, donde todas las propiedades forman un todo significativo).
Pregunta es - ¿qué es este objeto UserPreferencesInfo?
1) Obviamente no es una entidad (Sólo estoy almacenarla como 'componente' en hablar con fluidez NHibernate (es decir, en la misma mesa DB como la entidad de usuario).
2) VO? Entiendo que Value Object se supone que es Inmutable (por lo que no puede cambiarlos, solo los vuelve a subir). Esto tiene sentido completo cuando el objeto es una dirección, por ejemplo (las propiedades de la dirección forman un 'todo' significativo). Pero en el caso de UserPreferencesInfo, no creo que tenga sentido.
Podría haber 100 propiedades
(Realísticamente) Podría haber tal vez 20 propiedades en este objeto. ¿Por qué desearía descartar y volver a crear el objeto cada vez que necesite cambiar una propiedad?
Siento que necesito romper las reglas aquí para obtener lo que necesito, pero realmente no me gusta la idea de eso (¡es una pendiente resbaladiza!). ¿Me estoy perdiendo de algo?
Gracias
Gracias por la respuesta, solo para aclarar, ya que está configurado UserPreferenceInfo no tiene una ID, por eso para mí parece más como un VO. Pero aún hay un mal ajuste con la inmutabilidad. – UpTheCreek
Según tengo entendido, ID no es necesario para considerar clase una entidad, ya que puede utilizar otros medios para hacer valer su identidad, p. Ej. referencia a la raíz agregada ('Usuario') si hay una instancia única para una raíz o simplemente evitando la comparación de igualdad en la lógica de negocios. IOW, la identidad es una lógica, no una noción estructural. –