Ich weiß, dass das Singleton-Muster schlecht ist, weil es einen globalen Zustand verwendet. Aber in den meisten Anwendungen braucht man eine einzige Instanz einer Klasse, wie eine Datenbankverbindung. Also habe ich mein Datenbankobjekt ohne das Singleton-Muster entworfen, aber ich instanziere es nur einmal.
Meine Frage ist, wie kann ich mein Objekt in den Low-Level-Klassen (tief im Objektgraphen) zugreifen, ohne es überall zu übergeben?
Nehmen wir an, ich habe einen Anwendungscontroller, der einen Seitencontroller instanziiert, der ein Benutzermodell instanziiert, für das das Datenbankobjekt erforderlich ist (fragen Sie eine Fabrik, um es zu instanziieren).
Weder mein App-Controller noch mein Page-Controller müssen etwas über das Datenbankobjekt wissen, aber die User-Klasse schon. Wie soll ich das Objekt an sie übergeben?
Vielen Dank für Ihre Zeit!