que estoy tratando de conseguir mis manos sucias DDD aprendizaje (mediante el desarrollo de un sitio de comercio electrónico muestra con entidades como Order
, OrderLines
, Product
, Categories
etc). Por lo que pude percibir sobre el concepto de agregación de raíz, pensé que la clase Order
debería ser una raíz agregada para OrderLine
.DDD - Agregada Raíz - Ejemplo Orden y OrderLine
Las cosas fueron bien hasta el momento, sin embargo, estoy confundido cuando define un flujo de orden de crear desde la interfaz de usuario. Cuando quiero añadir una línea para mi objeto orden, ¿cómo debo obtener/crear una instancia de un OrderLine
objeto:
- ¿Debo codificar la nueva
OrderLine()
declaración en mi clase de interfaz de usuario/servicio - En caso Defino un método con parámetros como
productID
,quantity
etc. en la claseOrder
?
Además, ¿qué sucede si quiero eliminar las instancias codificadas de la interfaz de usuario o la clase Order
con una DI? ¿Cuál sería el mejor enfoque para esto?
No creo que order.OrderLines.Add sea más OO. Hay una cosa OO llamada encapsulación. Si tiene muchos XXX, ZZZ, YYY en su clase, es mejor rediseñarlo (un buen diseño de OO tiende a tener muchos objetos pequeños). Puede buscar en Google los beneficios de encapsular colecciones y evitar accidentes de trenes (las interfaces fluidas son el otro caso). –