Es hat sich ja mittlerweile eine sehr interessante Diskussion entwickelt.
Aber dass man Singletons sehr selten benutzt kann ich nicht bestätigen.
Hier mal ein paar Beispiele wo und warum ich die Klassen als Singleton benutze:
Functions.class
- Das ist eine Sammlung von unzähligen allgemeinen Funktionen. Die resultiert daraus, da das Projekt vorher strukturiert war und alle Funktionen statisch deklariert wurden um die dann aufzurufen. Sie wird nach und nach gekapselt, aber puntk ist, dort sammeln sich allgemeine Funktionen die an mehreren Stellen benötigt werden. Die Klasse ist ein Singleton, da ich nicht verschiedene Zustände der Klassenvariablen benötige o.ä. sondern einfach nur eine Möglichkeit haben möchte, um auf die Klasse zuzugreifen. Die Funktionen sind nicht mehr statisch, da einige Klassenvariablen initialisiert wurden, die in fas tallen Funktionen benötigt werden etc.
Model.class
- Ich benötige nur eine einzige Instanz, da ich immer auf dieselbe Datenbank zugreife
Router.class
- Eine Klasse die mir die entsprechenden Seitenaufrufe den entsprechenden Controllern zuordnet, etc.
Wieso sollte es kein Singleton sein?
Das Interpretieren des Seitenaufrufs geschieht einmalig, und die Werte werden dann aber an mehreren Stellen benötigt, also rufe ich dann entsprechende Klassenvariablen auf um die Werte zu erhalten. Mit Obejtken hätte ich immer andere Werte.
Request.class
- Eien Wrapperklasse die mir die Request Variablen escapet etc. Auch hier benötige ich keine Objekte, da es sich immer um dieselben Daten handelt.
Soviel dazu.
Ich freue mich über eure Meinungen und ideen, wieso und warum meine Ansicht evlt. falsch oder sogar richtig sind.
Vielen Dank im voraus.