DarthShader
Erfahrenes Mitglied
Hallo zusammen,
ich würde von Euch gerne einmal Eure Meinung zur Verwendung von Singletons hören. Zur Zeit arbeite ich an einem etwas größerem Projekt, und wie es bei vielen Programmen der Fall ist, gibt es einige sehr zentrale (Controller-) Klasse (sowas wie GuiSystem, ApplicationController, ProjectExplorer etc...).
Oft ist es so, dass verschiedene Programmteile Zugriff auf diese zentralen Klassen benötigen. Die Lösung ist für mich momentan, dass ich diese Klassen als Singletons aufbaue, sodass ich von überall aus per ....getInstance() darauf zugreifen kann.
Ich frage mich jedoch gerade - ist das schlechter Stil? Sollte ich eher den Teilen des Programmes eine spezielle Klasse als Parameter mitgeben? So könnte Klasse B die Klasse A benötigen, deshalb gebe ich B eine Instanz von A im Konstruktor mit. Verfahre ich so, hat nur diejenige Klasse Zugriff auf eine andere, die sie wirklich benötigt. Wenn ich Singletons und die .getInstance() Geschichte verwende, könnte quasi jede Klasse auf diese zentralen Klassen zugreifen, was bei mir ein etwas "schlechte Gewissen" aufkommen lässt.
Was sagt ihr dazu, kann man ruhig Singletons verwenden, wenn es sich um wenige, sehr zentrale Klassen handelt, die an vielen Stellen gebraucht werden? Oder sollte man das Programm so auslegen, dass Singletons besser vermieden werden können?
Bin gespannt auf Eure Meinungen
Danke!
ich würde von Euch gerne einmal Eure Meinung zur Verwendung von Singletons hören. Zur Zeit arbeite ich an einem etwas größerem Projekt, und wie es bei vielen Programmen der Fall ist, gibt es einige sehr zentrale (Controller-) Klasse (sowas wie GuiSystem, ApplicationController, ProjectExplorer etc...).
Oft ist es so, dass verschiedene Programmteile Zugriff auf diese zentralen Klassen benötigen. Die Lösung ist für mich momentan, dass ich diese Klassen als Singletons aufbaue, sodass ich von überall aus per ....getInstance() darauf zugreifen kann.
Ich frage mich jedoch gerade - ist das schlechter Stil? Sollte ich eher den Teilen des Programmes eine spezielle Klasse als Parameter mitgeben? So könnte Klasse B die Klasse A benötigen, deshalb gebe ich B eine Instanz von A im Konstruktor mit. Verfahre ich so, hat nur diejenige Klasse Zugriff auf eine andere, die sie wirklich benötigt. Wenn ich Singletons und die .getInstance() Geschichte verwende, könnte quasi jede Klasse auf diese zentralen Klassen zugreifen, was bei mir ein etwas "schlechte Gewissen" aufkommen lässt.
Was sagt ihr dazu, kann man ruhig Singletons verwenden, wenn es sich um wenige, sehr zentrale Klassen handelt, die an vielen Stellen gebraucht werden? Oder sollte man das Programm so auslegen, dass Singletons besser vermieden werden können?
Bin gespannt auf Eure Meinungen
Danke!