Mi contexto inmediato es la plataforma de Windows, sin embargo, también podría hacer la misma pregunta cuando trabaje en una interfaz de usuario para otro host de interfaz gráfica de usuario. Estoy trabajando en bastante simple C++ winapi, sin ATL/MFC. No estoy interesado en usar globales, sino más bien en la práctica aceptada de realizar tareas relacionadas con "Ventana" con datos de "Aplicación".¿Cuál es el diseño adecuado/aceptado para acceder a las variables de aplicación desde una clase ventana?
He considerado la implementación de patrones de estilo mvvw o mvc en esto, pero antes de continuar me gustaría algunas opiniones de la comunidad, de lo que imagino son incontables desarrolladores y diseñadores experimentados.
Mi clase de aplicación tiene miembros de Windows. ¿Debería diseñarse la clase Window con una referencia de aplicación? ¿O hay una mejor manera que esto?
El puntero a su clase 'TThread' entra en el almacenamiento local de subprocesos. La clase 'TThread' tiene un puntero al objeto' TApplication' como su miembro de datos. Tiene sentido hacer que 'TApplication' sea global de todos modos, porque su constructor proporciona un lugar para hacer algunas inicializaciones antes de llamar a' main'. – lapk
Sé que las personas hacen muchos esfuerzos para evitar las variables globales (con razón), pero a veces ese es el mecanismo que mejor refleja la realidad. Si siempre hay una y solo una instancia de 'Aplicación' por diseño, ¿por qué * no * la convierte en global? –
O un Singleton ... http://en.wikipedia.org/wiki/Singleton_pattern. Pero preferiría pasar todos mis objetos de Ventana una referencia al Modelo, en su caso ese sería el objeto de Aplicación AFAIU. –