Ya leí muchas publicaciones y artículos en toda la red, pero no pude encontrar una respuesta definitiva al respecto.C++, static vs. namespace vs. singleton
Tengo algunas funciones con propósitos similares que quiero tener fuera del alcance global. Algunos de ellos necesitan para ser públicos, otros deben ser privados (porque son solo funciones auxiliares para los "públicos"). Además, no tengo solo funciones, sino también variables. Solo son necesarios para las funciones auxiliares "privadas" y también deben ser privadas.
Ahora bien, hay tres maneras:
- haciendo una clase con todo ser estáticas (contra: potencial "No se puede llamar a la función miembro sin objeto" - no todo tiene que ser estática)
- hacer un producto único clase (en contra de: i tendrá el objeto)
- hacer un espacio de nombres (sin palabra clave private - ¿por qué debería ponerlo en un espacio de nombres en absoluto, entonces?)
¿Cuál sería la manera de tomar por mí? ¿Posible forma de combinar algunas de estas formas?
pensé en algo así como:
- hacer un producto único, las funciones estáticas utilizan la función de ayuda del objeto Singleton (es esto posible todavía estoy dentro de la clase, pero el acceso a un objeto de ella es? tipo)
- constructor llamado al inicio programm, inicializa todo (-> asegurándose de que la estática pueden acceder a las funciones del objeto Singleton)
- acceso a las funciones públicas sólo a través de MyClass :: PublicStaticFunction()
Gracias.
No utilizar singletons a menos que yo usted realmente necesita (es decir. casi nunca). Una buena discusión es http://www.ibm.com/developerworks/webservices/library/co-single/index.html –