Estoy aprendiendo mucho sobre los patrones de diseño cuando estoy construyendo mi propio sistema para mis proyectos. Y quiero preguntarle acerca de una pregunta de diseño a la que no puedo encontrar una respuesta.Dos objetos con dependencias entre ellos. ¿Es tan malo?
Actualmente estoy construyendo un pequeño servidor de chat usando sockets, con varios clientes. Ahora mismo tengo tres clases:
- persona de clase que contiene información como nick, edad y una habitación a objetos.
- Clase de habitación que contiene información como nombre de habitación, tema y una lista de personas actualmente en esa habitación.
- Clase de hotel que tienen una lista de personas y una lista de salas en el servidor.
He hecho un diagrama para ilustrarlo:
Tengo una lista de personas en el servidor de la clase del hotel, ya que sería bueno hacer un seguimiento de cuántos están online ahora (sin tener que iterar a través de todas las salas). Las personas viven en la clase Hotel porque me gustaría poder buscar una Persona específica sin buscar en las habitaciones.
¿Este diseño es malo? ¿Hay alguna otra forma de lograrlo?
Gracias.
Veo "dependencia mutua" es la palabra que estaba buscando. Para el registro, estoy escribiendo esto en Java. El enfoque de interfaz parece interesante, pero no hace que la solución sea mucho más diferente, pero entiendo su punto. Gracias por tu comentario. –
@Kasper, el punto es que no hay ningún problema real con tener dependencias en _interfaces_ (incluidas las mutuas); en su mayoría son dependencias del software _concrete_ las que realmente desea evitar (por ejemplo, en el caso de "bucles"). La libertad de comenzar con una implementación rápida y sucia y cambiar a una más sólida también acelera la creación de prototipos de software y la iteración en su evolución y mantenimiento. –