Entwurfsmuster und ihre Gemeinsamkeiten

Maik.Neumann

Aktives Mitglied
Hallo zusammen !

Ich beschäftige mich seit einiger Zeit mit Patterns in Java und stelle im wieder fest, dass viele von Ihnen schwer auseinander zu halten sind. Zum Beispiel ähneln sich in meinen Augen das Command Pattern und das Strategy Pattern sehr und ich weiß nicht, durch was sie genau auseinander zu halten sind. Analog dazu das Flyweight Pattern und das Singelton Pattern, auch hier sehen diese täuschend ähnlich.

Wie sieht ihr das?

Danke und Gruß
 
Wo siehst du die Ähnlichkeiten? Dann können wir dir auch sicher besser erklären worin der Unterschied besteht und was du falsch betrachtest 🙂
 
Patterns sind nur Muster...

vielleicht unterscheiden sich einige nur wenig - es ist aber auch egal.


flyweight und singleton unterscheiden sich allerdings massiv

beim Fliegengewicht willst du eine komplexe Klasse auf ein sehr leichtgewichtiges Objekt zusammenschrumpfen (Beispielsweise nur noch die ID und evtl ein String anstatt einer sehr dicken Klasse - das macht man, wenn Speicher eng wird und man sehr sehr viele Objekte hat)

Beim Singleton hat man genau EINE Objekt-Instanz. Oft verwendet man dies für UtilityKlassen oder HelperKlassen, die etwas koordinieren oder eben nur einmal gebraucht werden (Beispiel: Spring-Beans, Ablösung von static)
 
eim Fliegengewicht willst du eine komplexe Klasse auf ein sehr leichtgewichtiges Objekt zusammenschrumpfen (Beispielsweise nur noch die ID und evtl ein String anstatt einer sehr dicken Klasse - das macht man, wenn Speicher eng wird und man sehr sehr viele Objekte hat)

Ich dachte, dass Flyweight Pattern nutzt man, wenn man statt viele Objekte nur ganz wenige Objekte erzeugen möchte und diese immer nur wieder mit einem anderen Objektzustand versorgt.

Was hat das mit der Reduzierung auf komplexe Klassen zu tun?
 
ja, man kann das auch machen, indem man dann weniger Objekte hat, weil man die Gemeinsamkeiten zusammennimmt.

Allerdings ist das schon was anderes als ein Singleton
 
Bei einem Singelton ist das Ziel MAXIMAL ein Objekt einer Klasse erstellen zu dürfen.
Beim Flyweight Pattern ist das Ziel den Speicherverbrauch zu reduzieren, aber deswegen wird nicht nur ein Objekt im Speicher gehalten.
 

Neue Themen


Zurück
Oben