Gutes Tutorial: http://philipphauer.de/study/se/design-pattern/
Verhalten in eigene Klassen auslagern: mehr Flexibilität etc.
Ein Klasse aktualisiert Liste/udated Daten mehrerer Klassen
Nur EINE Instanz einer Klasse soll es geben.
Ein Klasse umwrappt eine andere wie eine Blume und erweitert diese. (Kann Ersatz für Vererbung sein)
Beispiel: Restaurant mit Hauptgerichten und Beilagen. Beilagen 'wrappen' sich um Hauptgerichte: Beilagenojekt ruft Haupgerichtenobjekt auf und addiert Preise…
Beispiel: Shop mit Office Applikationen, wie Word, Excel und Powerpoint
Ein eigene Klasse, um andere Klassen zu erzeugen und aufzurufen.
Entkopplung von der konkreten Instanziierung einer Klasse. Das erstellte Objekt kann elegant ausgetauscht werden.
GOF: „Definiere eine Klassenschnittstelle mit Operationen zum Erzeugen eines Objekts, aber lasse Unterklassen entscheiden, von welcher Klasse das zu erzeugende Objekt ist. Fabrikmethoden ermöglichen es einer Klasse, die Erzeugung von Objekten an Unterklassen zu delegieren.“
Spielewelt-Beispiel: Regenwald, Wüste, Polargebiet
GOF:„Biete eine Schnittstelle zum Erzeugen von Familien verwandter oder voneinander abhängiger Objekte, ohne ihre konkreten Klassen zu benennen.“
Command
Composite
Facade
State