Estoy construyendo una aplicación C++, y tengo varios objetos de utilidad que todas mis clases deben usar. Estas son cosas como el objeto de registro, el objeto de estado global, el objeto DAL, etc ...¿Cuál es la mejor forma de manejar múltiples dependencias de objetos en C++?
Hasta este punto, he estado pasando todos estos objetos como referencias en los constructores de mi clase.
Por ejemplo:
class Honda : public Car { public: Honda (const GlobalState & state, const Log & logger, const DAL & dal); ... private: const GlobalState & my_state; const Log & my_logger; const DAL & my_dal; }
esto se pone aburrido rápido, porque cada vez que agrega un objeto de utilidad que todas mis clases necesidad de acceder, tengo que ir y cambiar los constructores de todo el mundo.
He oído que la forma correcta de resolver este problema es crear una estructura que contenga todos los objetos de utilidad diferentes y pasarla (como referencia) a todos los objetos que necesiten acceder a ella.
¿Es esta la forma correcta de solucionar este problema? ¡Gracias!
ACTUALIZACIÓN: Gracias a todos por los comentarios. Después de un poco de investigación adicional, he decidido seguir usando Dependency Injection.
Ese es un buen punto. En lo que respecta a estos objetos, realmente no quiero recrearlos más de una vez. Por ejemplo, cada vez que creaba un objeto DAL, de hecho estaba creando otra conexión a mi base de datos, algo que realmente no necesito. Del mismo modo, solo necesito un registrador. – Runcible