Aufgabe 1

Software_Pattern - Adapter Pattern
Die bestehende Implementation der Datei adapter_better.py
soll erweitert werden. Neben den drei Spezies, die der Evil Overlord durch die Smartphone Updates nun kontrolliert und befehligen kann, sollen seine bisherigen Schergen ebenfalls in Englisch angesprochen werden können.
- Verändere den Code so, dass auch Trolle und Orks zu den befehligbaren Minions vom Evil Overlord gehören. Füge jeweils einen Ork und einen Troll in die Liste der Minions hinzu. Teste die Befehlsgewalt des Evil Oberlords.
- Füge eine weitere Kontrolle des Evil Overlords über seine Minions ein, indem der diese nicht nur rufen (call_me) kann, sondern auch ausschicken kann um nützlich zu werden. Dazu sollen die Menschen Gegenstände herstellen, die Elfen Gegenstände magisch verwandeln, die Zwerge sollen Gold schürfen, die Trolle sollen Steine heranschaffen und die Orks sollen stehlen gehen. Teste die neue Kontrolle.
- Führe die selben Aufgabenschritte mit der Datei
adapter_best_short_simple.py
durch. Kopiere dabei die entscheidenden Codeteile aus der vorherigen Lösung. Verändere nun die Liste der Minions, so dass auch hier ein Troll und ein Ork hinzugefügt wird. Teste den Aufruf der Methodecall_me
auf allen Minionadaptern. Die neue Methode aus Aufgabe B soll hier noch nicht ausprobiert werden. - Verkürze den Code, indem der Minion Adapter statt der Parameter func_all und func_specific ein Dictionary übergeben bekommt, das alle Paare von Adapterfunktionen und Klassenfunktionen enthält. Statt der Parameter
'call_me', 'nall_nin'
soll nun ein Dictionary{'call_me': 'nall_nin', ...}
der Methode__init__
übergeben werden. Ergänze die Aufrufe durch die neue Methode aus Aufgabe B und erweitere die Funktionalität der__init__
-Methode dementsprechend.
Aufgabe 2

Software_Pattern - Facade Pattern
Öffne die Datei facade_short_simple.py
sowie die Lösung aus Aufgabe 1. Der Evil Overlord möchte seine neuen Kräfte über die Minions jetzt nutzen.
- Übernehme in die Lösung aus Aufgabe 1 die Klassendefinition, die das Facade Pattern repräsentiert, sowie den Hauptausführungscode unter der main-Anweisung aus der Datei
facade_short_simple.py
. Kommentiere den vorherigen Code unter der main-Anweisung in der Lösung aus Aufgabe 1 aus. Prüfe die Ausgabe. - Füge einen Troll und einen Ork in die Liste der Minions mit ein. Prüfe die Ausgabe.
- Erstelle eine neue Klassenmethode, die alle Minions nützlich werden lässt. Rufe die Methode zusätzlich auf und prüfe die Ausgabe.
- Erweitere die Klassenmethode
create_minions
so, dass eine zufällige Anzahl (5-20) an Minions zufälligen Typs in die Liste der Minions aufgenommen werden.