Closed salluzziluca closed 2 years ago
Si el Jugador
tiene una lista de Carta
s y a su vez cada Carta
tiene una referencia a un Jugador
, entonces habría una agregación cíclica entre ambas clases. No sería del todo incorrecto, pero al menos violaría un principio de diseño.
Una consecuencia sería que eso agrega un invariante: si el jugador j
tiene la carta c
, entonces la carta c
tiene que tener una referencia al jugador j
(si fuera otro jugador sería un bug). Eso agrega complejidad en el código porque tendrías que asegurar que esa invariante se cumpla siempre.
Una alternativa sería que la carta no sepa cuál es el jugador (es decir que la agregación vaya en un único sentido Jugador <>---- Carta
), pero que todos los métodos de Carta
que necesiten el Jugador
, que lo reciban por parámetro: carta.hacerAlgo(jugador)
. Ahí la dependencia sería siendo cíclica, pero sería una dependencia más débil.
Lo entendimos, gracias!
Seria correcto que la carta pueda acceder a informacion del jugador tales como el maná o la mano actual? Es decir, que la carta pueda interactuar con atributos de la clase que la contiene