2010-02-08 10 views
5

Estoy desarrollando una simulación simple con OpenGL y esta simulación tiene algunas constantes globales que el usuario cambia durante la ejecución de la simulación. Me gustaría saber si el patrón de diseño de Singleton es la mejor manera de trabajar como un "repositorio de configuración" de tiempo de ejecución temporalUsando un singleton para almacenar los parámetros de la aplicación global

Respuesta

4

Un singleton es probablemente la mejor opción si necesita mantener esta configuración realmente "global".

Sin embargo, para fines de simulación, consideraría si puede diseñar sus algoritmos para pasar una referencia a una instancia de configuración, en su lugar. Esto haría mucho más fácil almacenar configuraciones por simulación, y eventualmente le permitirá procesar simulaciones múltiples con configuraciones separadas al mismo tiempo, si los requisitos cambian.

A menudo, tratar de evitar el estado global es un mejor enfoque a largo plazo.

1

Creo que en el pasado he usado espacios de nombres para este propósito, no clases de singleton, sino esto debería funcionar también (probablemente incluso mejor).

Por supuesto, si desea poder cambiar la configuración sin recompilar, puede mover todo a un archivo de propiedades separado (o XML o YAML o CSV o lo que prefiera) y luego cargarlo al inicio de la aplicación arriba. Entonces necesitarías una clase "config" para almacenar todos los valores en un hashmap (o algo así).

Cuestiones relacionadas