He estado programando una versión de software de un juego de mesa. Hasta ahora he escrito las clases que corresponderán a objetos físicos en el tablero de juego. Estoy bien en la escritura de la lógica del programa, sin embargo, he encontrado que muchas de las clases de lógica requieren acceso a los mismos objetos.Buen estilo de programación al manejar objetos múltiples
Al principio estaba pasando los objetos apropiados a los métodos como se los llamaba, pero esto se volvía muy tedioso, particularmente cuando los métodos requerían muchos objetos para realizar sus tareas. Para resolver esto, creé una clase que inicializa y almacena todos los objetos que necesito. Esto me permite acceder a un objeto de cualquier clase llamando a Assets.dice(), por ejemplo.
Pero ahora que lo he pensado, esto no parece correcto. Es por eso que estoy aquí, me temo que he creado algún tipo de clase de Dios. ¿Este miedo es infundado, o he creado una receta para el desastre?
Esto no es realmente un Singleton, ya que el acceso se realiza a través de interfaces estáticas. Pero sufre muchas de las mismas desventajas, así que me abstendré de marcar. – DJClayworth
Gracias Matt. Cambié el código para que solo el archivo de lógica principal creara y tuviera acceso directo al objeto GameAssets. Esto luego se pasa a otras clases/métodos. Sin embargo, todavía no parece correcto, tal vez porque mi lógica es de arriba hacia abajo en el diseño. Termino pasando este objeto por todo el lugar. Pero tal vez esa sea otra pregunta en sí misma: ¿cómo se divide la lógica del juego en pequeños fragmentos? Tendré que pensarlo. – Glitch