Statische Klasse <=> Singleton

Status
Nicht offen für weitere Antworten.
B

bygones

Gast
Hi,

würde gern mal eure meinung hören:

Soll eine Klasse eher nur statische methoden haben oder als Singelton implementiert werden wenn man nur eine Instanz der Klasse haben will. Bzw. warum macht das Singelton pattern sinn, wenn ich alles als statisch deklariere habe ich doch den gleichen Effekt ??

Meinungen ?
 

Illuvatar

Top Contributor
Da habe ich noch nicht darüber nachgedacht.
Aber eigentlich ist der einzige Unterschied die Art, wie man darauf zugreift, oder?
 
S

stev.glasow

Gast
Wenn du alles statisch machst ist das ganze recht unflexibel. Denn wenn du dir z.B. später mal mehr als ein Objekt 'halten' willst muss du erstmal einiges am code ändern, was bei der Siglemethode einfacher zuhandhaben ist, dort brauchst du dann nämlich nur den Konstrukor public setzen oder diese eine static-methode anpassen.
 
B

bygones

Gast
Illuvatar hat gesagt.:
Da habe ich noch nicht darüber nachgedacht.
Aber eigentlich ist der einzige Unterschied die Art, wie man darauf zugreift, oder?
Naja nicht ganz - bei einem Singelton sind die Methoden und Variablen meist instanzmethoden-/variablen, bei einer statischen Klasse ist alles statisch.
D.h. man greift dann über Klasse.tuwas() zu, bei einem Singeltion z.b. Klasse.getInstance().tuWas(),,

@stevg: stimmt da hast du recht...
 

Illuvatar

Top Contributor
deathbyaclown hat gesagt.:
Illuvatar hat gesagt.:
Da habe ich noch nicht darüber nachgedacht.
Aber eigentlich ist der einzige Unterschied die Art, wie man darauf zugreift, oder?
Naja nicht ganz - bei einem Singelton sind die Methoden und Variablen meist instanzmethoden-/variablen, bei einer statischen Klasse ist alles statisch.

Sorry, hab mich vielleicht etwas falsch ausgedrückt.
Das ein Singleton eine Objektinstanz ist, war mir klar.
Ich meinte, dass der Unterschied beim Benutzen eines Singletons/einer statischen Klasse liegt, eben genau das, was du auch geschriben hast.
deathbyaclown hat gesagt.:
D.h. man greift dann über Klasse.tuwas() zu, bei einem Singeltion z.b. Klasse.getInstance().tuWas(),,

@stevg
*auch zustimm*
 
N

norbört

Gast
das ist meiner meinung nicht ganz richtig:

wenn du mit klasse.getInstance().method() zugreifst, dann kannst ja auch gleich eine statische methode nehmen odeR?

klasse instanz = klasse.getInstance();
instanz.method(); -> das ist dann, wie es sein soll... oder?

ciao
 
G

Guest

Gast
no, das stimmt nicht :)

das gleiche ist es nicht, weil bei einem singleton einmalig ein objekt instanziert (erzeugt) wird und der konstruktor ausgeführt wird. bei static klassen wird kein konstruktor ausgeführt.
was von der "schnelligkeit" besser ist - glaub ich - sind static klassen, weil die anders "geladen" werden.

nur zB bei einer datenbankklasse, könnte man ein singleton nehmen, da dann zB erstmalig die verbindung hergestellt wird...

ciao
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben