Aktivität 01
Pair Programming: Singleton implementieren
Paare erstellen eine Logger-Klasse mit Singleton-Muster in Java. Sie testen den globalen Zugriff und verhindern Mehrfachinstanzen. Abschließend refactoren sie zu einem thread-sicheren Singleton.
Warum ist es sinnvoll, bewährte Entwurfsmuster statt individueller Ad-hoc-Lösungen zu nutzen?
ModerationstippErklären Sie vor der Implementierung des Singleton-Musters, warum globale Zugriffe oft problematisch sind und wie Dependency Injection eine Alternative bieten kann.
Worauf zu achten istGeben Sie jedem Schüler ein Code-Snippet, das entweder das Singleton- oder das Factory-Muster verwendet. Bitten Sie die Schüler, zu identifizieren, welches Muster verwendet wird, und zwei Sätze zu schreiben, die erklären, warum dieses Muster in diesem spezifischen Kontext gewählt wurde.
AnalysierenBewertenErschaffenEntscheidungsfähigkeitSelbststeuerung
Komplette Unterrichtsstunde erstellen→· · ·
Aktivität 02
Small Groups: Factory vs. Direkt-Erzeugung
Gruppen implementieren eine Shape-Hierarchie mit Factory-Muster und vergleichen sie mit direkter new-Anweisung. Sie erweitern um neue Shapes und messen Wartbarkeitsunterschiede. Präsentation der Ergebnisse.
Vergleichen Sie die Anwendungsbereiche des Singleton- und des Factory-Musters.
ModerationstippFordern Sie die Kleingruppen beim Factory-Vergleich auf, konkrete Code-Beispiele auszutauschen, die sie vorher selbst geschrieben haben, um die Diskussion zu vertiefen.
Worauf zu achten istStellen Sie den Schülern die folgende Frage: 'Sie entwickeln eine Anwendung, die eine einzige, globale Konfigurationseinstellung benötigt. Welches Entwurfsmuster würden Sie verwenden und warum? Beschreiben Sie kurz, wie Sie es implementieren würden.'
AnalysierenBewertenErschaffenEntscheidungsfähigkeitSelbststeuerung
Komplette Unterrichtsstunde erstellen→· · ·
Aktivität 03
Whole Class: Vor- und Nachteile diskutieren
Klasse analysiert vorgegebenen Singleton-Code auf Testbarkeit. Gemeinsam listen Vor- und Nachteile auf Flipchart, bewerten Flexibilität und passen Code an.
Beurteilen Sie die Vor- und Nachteile des Singleton-Musters in Bezug auf Testbarkeit und Flexibilität.
ModerationstippNutzen Sie die Whole-Class-Diskussion, um Schülerbeiträge gezielt zu sammeln und zu clustern, um die Unterschiede zwischen Singleton und Factory sichtbar zu machen.
Worauf zu achten istLeiten Sie eine Diskussion mit der Frage: 'Unter welchen Umständen könnte die Verwendung des Singleton-Musters zu Problemen bei der Wartung oder Testbarkeit führen? Nennen Sie mindestens zwei konkrete Beispiele und schlagen Sie alternative Lösungsansätze vor.'
AnalysierenBewertenErschaffenEntscheidungsfähigkeitSelbststeuerung
Komplette Unterrichtsstunde erstellen→· · ·
Aktivität 04
Individual: Factory refactoring
Jede Schülerin refaktoriert eine bestehende Klasse mit Factory-Muster. Sie dokumentiert Änderungen und testet Erweiterbarkeit mit einer neuen Subklasse.
Warum ist es sinnvoll, bewährte Entwurfsmuster statt individueller Ad-hoc-Lösungen zu nutzen?
Worauf zu achten istGeben Sie jedem Schüler ein Code-Snippet, das entweder das Singleton- oder das Factory-Muster verwendet. Bitten Sie die Schüler, zu identifizieren, welches Muster verwendet wird, und zwei Sätze zu schreiben, die erklären, warum dieses Muster in diesem spezifischen Kontext gewählt wurde.
AnalysierenBewertenErschaffenEntscheidungsfähigkeitSelbststeuerung
Komplette Unterrichtsstunde erstellen→Einige Hinweise zum Unterrichten dieser Einheit
Erfahrene Lehrkräfte beginnen mit konkreten Problemen, die durch Singleton oder Factory gelöst werden können, wie etwa die Verwaltung einer einzigen Datenbankverbindung oder die flexible Erzeugung verschiedener Logger-Objekte. Vermeiden Sie es, die Muster isoliert zu erklären – stattdessen sollten Schülerinnen und Schüler selbst erleben, wie sich Code ohne und mit diesen Mustern verändert. Wichtig ist auch, auf die Grenzen der Muster hinzuweisen, etwa wenn Singleton zu unflexiblen Architekturen führt oder Factory überflüssig wird, wenn nur eine Klasse erzeugt wird.
Erfolgreiches Lernen zeigt sich daran, dass Schülerinnen und Schüler die Muster nicht nur implementieren, sondern auch begründen können, wann sie eingesetzt werden. Sie erkennen die Unterschiede zwischen Singleton und Factory, bewerten ihren Nutzen in konkreten Kontexten und identifizieren potenzielle Fallstricke wie versteckte Abhängigkeiten oder Testbarkeitsprobleme.
Vorsicht vor diesen Fehlvorstellungen
Während der Pair-Programming-Übung zur Singleton-Implementierung beobachten Sie, dass einige Paare das Muster als universelle Lösung für globale Objekte betrachten.
Nutzen Sie die Implementierungsphase, um gezielt nach Alternativen zu fragen, etwa nach Dependency Injection. Fordern Sie die Paare auf, ein Code-Beispiel zu erstellen, das ohne Singleton auskommt, und diskutieren Sie die Vorzüge beider Ansätze.
Während der Kleingruppenarbeit zum Vergleich von Factory und Direkt-Erzeugung halten einige Schülerinnen und Schüler das Factory-Muster für unnötig komplex.
Fordern Sie die Gruppen auf, konkrete Erweiterungen zu simulieren, etwa das Hinzufügen eines neuen Logger-Typs. Zeigen Sie ihnen, wie Factory diese Änderungen vereinfacht, während Direkt-Erzeugung zu Code-Duplikaten führt.
Während der Whole-Class-Diskussion zum Vergleich der Muster wird behauptet, Singleton und Factory seien austauschbar.
Nutzen Sie die Diskussion, um gezielt nach Anwendungsfällen für beide Muster zu fragen. Bitten Sie die Klasse, Beispiele zu sammeln, in denen nur eines der Muster sinnvoll ist, und die Unterschiede in den Code-Strukturen zu vergleichen.
In dieser Übersicht verwendete Methoden