Aufgabe 1

Pattern3
Thonny Icon
Software_Pattern - Observer Pattern

Die bestehende Implementation der Datei observer_short_opal.py soll erweitert werden. Damit die bisher geleistete Arbeit nicht umsonst ist, befiehlt der Evil Oberlord das der Code wiederverwendet werden sollte.

  1. Erstelle eine neue Datei species.py und kopiere in diese alle Spezies aus der Lösung aus Aufgabe 2 des vorherigen Übungsblattes. Importiere diese nun in die Datei observer_short_opal.py. Ersetze die Methoden create_minions und die "macht_euch_nützlich" der Klasse Minionfacade mit deiner Lösung aus Aufgabe 2 des vorherigen Übungsblattes. Teste die Funktionalität des Programms. Dieses sollte nun wieder ausführbar sein.
  2. Füge eine in die Klasse Minionfacade eine neue Klassenmethode gold_for_dwarfs hinzu, die alle Minionadapter durchgeht und schaut ob sich darunter Zwerge befinden. Falls ja bekommt jeder Zwerg ein Attribut gold mit einer zufälligen Anzahl Gold zwischen 0 und 10.
  3. Der Evil Overlord ist knapp bei Kasse und will nur noch benachrichtigt werden, wenn sich bei einem Dwarf etwas ändert. Füge dazu der Klassenfunktionen monitor_all einen optionalen Parameter hinzu, der es erlaubt eine Spezies auszuwählen, die dann ausschließlich beobachtet wird. Rufe die Klassenmethode dann so auf, dass nur noch Dwarfs beobachtet werden und teste die Ausgabe dementsprechend.

Aufgabe 2

Thonny Icon
Pattern in der Schule - Pattern Park ein Lernprogramm

Die Dissertation von Peer Stechert Link beschäftigt sich intensiv mit dem Einsatz von Software Pattern im Unterricht. Im Zuge der Dissertation ist ein Softwareprojekt entstanden, dass Software Pattern im Informatikunterricht mit vermitteln soll. Das Projekt wurde von Studierenden der Universität Siegen im SS 2007 erstellt und wurde von Studierenden der Universität Stralsund im WS 2021 überarbeitet und erweitert.

  1. Lade dir die passender Version der Software Pattern Park herunter https://gitlab.com/patternpark/pattern-park-app/-/releases und starte diese. Du benötigst dafür Java. Mac-User müssen den Code selbst kompilieren.
  2. Suche das Adapter und das Facade Pattern und bearbeite die Aufgaben.
  3. Übersetze den Beispiel-Java-Programmcode am Ende der beiden Pattern in eine Version in Python.
  4. * Schaue dir die weiteren Pattern an.