Hey, für meine Prüfung muss ich folgende Patterns kennen und können:
Iterator, Factory Method, Class Adapter, Object Adapter, Composite, Singleton, Strategy, Template Method, Observer und State.
Iterator, Object Adapter, Composite, Singleton und Observer sind mir klar.
Fragen zum Rest:
Sehe ich das richtig, dass Template Method und Strategy sich lediglich darin unterscheiden, dass Template Method eine abstrakte Klasse ist und Strategy ein interface, sodass Template Method default Verhalten festlegen kann und in den Subklassen nicht jede Methode überschrieben werden muss im Gegensatz zur Strategy?
Dazu dann auch gleich die Frage: Ist das State Pattern prakitsch das Template Method Pattern, nur dass der Zustand automatisch entscheidet, welche Implementation genutzt wird, anstatt dass der User das entscheiden kann?
Auch dazu: Ist das Factory Method Pattern ein Template Method Pattern, das nur für das Erstellen von Objekten erzeugt wird?
Den Object Adapter verstehe ich gar nicht... Lt. Wikipedia (https://en.wikipedia.org/wiki/Adapter_pattern#Class_Adapter_pattern), delegiert der Adaptor, wie beim Object Adapter, an den Adaptee weiter. Der Adaptor imlementiert beliebig viele Interfaces (Adaptees), aber wie genau stellt er fest, welche Methode er jetzt ausführen soll, wenn der Client methodA() aufruft?
Iterator, Factory Method, Class Adapter, Object Adapter, Composite, Singleton, Strategy, Template Method, Observer und State.
Iterator, Object Adapter, Composite, Singleton und Observer sind mir klar.
Fragen zum Rest:
Sehe ich das richtig, dass Template Method und Strategy sich lediglich darin unterscheiden, dass Template Method eine abstrakte Klasse ist und Strategy ein interface, sodass Template Method default Verhalten festlegen kann und in den Subklassen nicht jede Methode überschrieben werden muss im Gegensatz zur Strategy?
Dazu dann auch gleich die Frage: Ist das State Pattern prakitsch das Template Method Pattern, nur dass der Zustand automatisch entscheidet, welche Implementation genutzt wird, anstatt dass der User das entscheiden kann?
Auch dazu: Ist das Factory Method Pattern ein Template Method Pattern, das nur für das Erstellen von Objekten erzeugt wird?
Den Object Adapter verstehe ich gar nicht... Lt. Wikipedia (https://en.wikipedia.org/wiki/Adapter_pattern#Class_Adapter_pattern), delegiert der Adaptor, wie beim Object Adapter, an den Adaptee weiter. Der Adaptor imlementiert beliebig viele Interfaces (Adaptees), aber wie genau stellt er fest, welche Methode er jetzt ausführen soll, wenn der Client methodA() aufruft?