He leído en varios lugares que tener variables con alcance global, es decir, una clase estática pública con miembros estáticos, se considera ir en contra de la filosofía de OO, y no es un buen diseño. (Por ejemplo, he visto comentarios como: "Si está utilizando un sistema global, no lo está haciendo bien". O palabras para ese efecto.)Variables globales v Configuración en C#
Pero, si usa el mecanismo de Configuración proporcionado por Visual Studio, por ejemplo "Settings.Default.MySetting", etc., esto está disponible globalmente en toda una aplicación, entonces, ¿cómo difiere esto de usar una clase estática pública?
Además, los mismos resultados se pueden lograr utilizando un objeto singleton, pero esto también provoca varias opiniones, por decir lo menos.
Las variables globales son TAN útiles, (Módulo VB, ¿alguien?), Pero estoy tratando de enseñarme cómo hacer esto OO malarky correctamente, entonces, si las variables globales huelen mal desde el punto de vista OO, es una alternativa?
Estoy particularmente interesado en las opiniones de las personas sobre el uso de la funcionalidad 'Configuración'. ¿Esto se considera un buen diseño OO?
Gracias por cualquier comentario.
¿Es un momento difícil? Sí. ¿Será difícil detener a un desarrollador determinado e incompetente? Nunca. He perdido la cuenta de la cantidad de veces que he visto algo implementado de una manera que es tanto más difícil y menos correcta que la manera diseñada. (Y estaría mintiendo si dijera que nunca fui culpable de tal cosa, también.) –
Buen punto Greg D. ¡Deberían ver algunos de mis errores de código pasados! –