Factory Method
Es wird eine Schnittstelle für die Erzeugung von Objekten definiert. Die Entscheidung, welche konkrete Klasse zu instanziieren, zu konfigurieren und schließlich zurückzugeben ist, wird konkreten (Unter-)Klassen überlassen, die diese Schnittstelle implementieren.
siehe: GitHub - ReadMe, GOF, STEMA, PK
Klassendiagramm
Beispiel
Im Beispiel betrachten wir eine Shop-Software, die sowohl von Moron Store Worldwide als auch von Mrs. Freakly genutzt wird, die einen (sehr erfolgreichen) Tante-Emma-Laden in Chicago betreibt. In beiden Fällen werden Gutscheine für die Kunden benötigt.
Da sich die Gutscheine und ihre Erzeugung recht stark unterscheiden, wurde das Factory Method-pattern eingesetzt.
Um das Zusammenspiel im Detail beobachten zu können, setzen Sie den log-level auf DEBUG in der logback.xml und führen den zugehörigen TestCase aus.