RodrigoToroIcarte / IIC2113-2023-1

6 stars 0 forks source link

[E4] Duda sobre clases estáticas #220

Open gabo1243 opened 10 months ago

gabo1243 commented 10 months ago

Hola, estaba implementando los tests de Complex Effects y me pasó que al pasar nuevos tests, otros dejaban de pasar. La cosa es que cuando los paso individualmente no hay problema, pero cuando los paso en paralelo (Run all unit tests), fallan algunos. Realmente estoy pasando todo lo que quiero, pero el problema es pasarlos en paralelo. Sobre eso me acordé que en clase(Sección 2) se mencionó de que si se hacía una clase estática podrían haber problemas al correr los tests en simultáneo. y creo que es eso lo que me está pasando. Lo que hago es implementar el historial de juego como una clase estática (PlayHistory), para poder modificarlo y acceder a él desde cualquier parte. Es sobre esto que no sé si me pueden aconsejar de como implementar de nuevo este historial de juego de forma que no tire problema en los tests en paralelo y que funcione similar a una clase estática como la que uso ahora. (Pregunto porque supongo que la idea no es pasar el historial de juego como argumento todo el rato).

Gracias de antemano.

RodrigoToroIcarte commented 10 months ago

El problema son los atributos estáticos. Ellos arruinan todo.

Para algo como un historial de juego estás medio obligado a pasarlo como parámetro. Luego hay que pensar sobre cuál es la forma más fácil de pasar el historial como parámetro a las clases que lo necesitan. Muchas veces lo mejor es darlo en el constructor. Así se entrega una sola vez.

Si quieres minimizar el número de argumentos que recibe la función, puedes agrupar cosas en estructuras de datos, etc.