Tengo problemas para definir este patrón de datos que he encontrado trabajando en varias aplicaciones.
Consiste en:
- Un tipo de objeto que se compone de muchos objetos.
- Un segundo tipo de objeto, donde cada instancia 'tiene muchos' del primer objeto
- Y, cada uno de los subobjetos del primer objeto es modificable por cada asociación al segundo tipo de objeto.
Un ejemplo simple podría ser:
- Un curso de programación que consta de un conjunto de lecciones.
- Las lecciones se componen de un conjunto de tareas.
- Se puede asignar un curso a un estudiante.
- Sin embargo, una vez que se asigna un curso a un alumno, cada lección y / o tarea se puede personalizar para ese alumno, con eliminaciones y adiciones, hasta el punto en que el curso original puede ser irreconocible.
En mis soluciones, esto resulta en:
Al asignar un curso a un estudiante, el curso se carga en la memoria. Luego, para cada subobjeto, se genera un objeto de relación estudiante / subobjeto con los metadatos apropiados. Básicamente, estoy usando el objeto original como plantilla para generar los objetos personalizables necesarios.
Esto da como resultado una gran cantidad de datos a medida que los subobjetos se vuelven más complejos y numerados. Me pregunto si hay alguna optimización o patrón para reducir la cantidad de lógica / complejidad requerida para manipular este patrón de datos.