Tach!
Ich habe eine Klasse die eine Verbindung zu meiner DB aufbaut. Wäre hier das Singleton pattern sinnvoll?
Andere Frage ist, wie ich diese DB Instanz in meine anderen Klassen "reinbekomme"?
Gegen Singleton spricht, dass deine "Verbraucher" genau wissen müssen, wie sie an dieses Singleton herankommen. Außerdem ist es nicht so richtig testbar (wenn das für dich von Belang ist). Es gibt ein Prinzip "dont look for things", demzufolge man nicht in der Klasse selbst nach benötigten Dingen schaut, und man als Außenstehender nicht weiß, das die Klasse alles benötigt, sondern ihr alles übergibt (Dependency Injection). Wenn Klassen etwas benötigen, sollten sie Parameter bekommen, die als Interface typisiert sind. Darüber reicht man dann rein, was man denen geben will. Das ist entweder eine Instanz einer produktiven Klasse oder ein Dummy für die Unit-Tests. Außerdem zwingt dich so dein Code, die Reihenfolge beim Initialisieren richtig einzuhalten.
Natürlich zwingt dich keiner, das so zu machen, aber so machen es "die guten". Such mal nach "clean code talks".
dedlfix.