Skip to content

Entwurfsmuster: Singleton und FactoryAktivitäten & Unterrichtsstrategien

Aktive Lernmethoden funktionieren besonders gut bei Entwurfsmustern, weil Schülerinnen und Schüler durch praktische Anwendung die Vorteile von Singleton und Factory direkt erleben. Diese Muster sind abstrakt und wirken oft unnötig kompliziert, bis sie im Code erfahrbar werden. Erst durch eigenes Handeln verstehen Lernende, warum diese Strukturen Code wartbarer und flexibler machen.

Klasse 12Informatik Oberstufe: Von Algorithmen zur vernetzten Gesellschaft4 Aktivitäten30 Min.50 Min.

Lernziele

  1. 1Demonstrieren Sie die Implementierung des Singleton-Musters zur Verwaltung einer einzelnen Ressource, z. B. einer Datenbankverbindung.
  2. 2Entwerfen Sie eine Factory-Klasse, die verschiedene Objekttypen basierend auf Eingabeparametern erstellt.
  3. 3Analysieren Sie die Auswirkungen der Verwendung des Singleton-Musters auf die Testbarkeit von Code.
  4. 4Vergleichen Sie die Anwendungsfälle und die Komplexität von Singleton und Factory bei der Objekterzeugung.
  5. 5Bewerten Sie die Vor- und Nachteile beider Entwurfsmuster für spezifische Software-Szenarien.

Möchten Sie einen vollständigen Unterrichtsentwurf mit diesen Lernzielen? Mission erstellen

45 Min.·Partnerarbeit

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.

Vorbereitung & Details

Warum ist es sinnvoll, bewährte Entwurfsmuster statt individueller Ad-hoc-Lösungen zu nutzen?

Moderationstipp: Erklären Sie vor der Implementierung des Singleton-Musters, warum globale Zugriffe oft problematisch sind und wie Dependency Injection eine Alternative bieten kann.

Setup: Gruppentische mit Platz für die Fallunterlagen

Materials: Fallstudien-Paket (3-5 Seiten), Arbeitsblatt mit Analyseraster, Präsentationsvorlage

AnalysierenBewertenErschaffenEntscheidungsfähigkeitSelbststeuerung
50 Min.·Kleingruppen

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.

Vorbereitung & Details

Vergleichen Sie die Anwendungsbereiche des Singleton- und des Factory-Musters.

Moderationstipp: Fordern Sie die Kleingruppen beim Factory-Vergleich auf, konkrete Code-Beispiele auszutauschen, die sie vorher selbst geschrieben haben, um die Diskussion zu vertiefen.

Setup: Gruppentische mit Platz für die Fallunterlagen

Materials: Fallstudien-Paket (3-5 Seiten), Arbeitsblatt mit Analyseraster, Präsentationsvorlage

AnalysierenBewertenErschaffenEntscheidungsfähigkeitSelbststeuerung
30 Min.·Ganze Klasse

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.

Vorbereitung & Details

Beurteilen Sie die Vor- und Nachteile des Singleton-Musters in Bezug auf Testbarkeit und Flexibilität.

Moderationstipp: Nutzen 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.

Setup: Gruppentische mit Platz für die Fallunterlagen

Materials: Fallstudien-Paket (3-5 Seiten), Arbeitsblatt mit Analyseraster, Präsentationsvorlage

AnalysierenBewertenErschaffenEntscheidungsfähigkeitSelbststeuerung
35 Min.·Einzelarbeit

Individual: Factory refactoring

Jede Schülerin refaktoriert eine bestehende Klasse mit Factory-Muster. Sie dokumentiert Änderungen und testet Erweiterbarkeit mit einer neuen Subklasse.

Vorbereitung & Details

Warum ist es sinnvoll, bewährte Entwurfsmuster statt individueller Ad-hoc-Lösungen zu nutzen?

Setup: Gruppentische mit Platz für die Fallunterlagen

Materials: Fallstudien-Paket (3-5 Seiten), Arbeitsblatt mit Analyseraster, Präsentationsvorlage

AnalysierenBewertenErschaffenEntscheidungsfähigkeitSelbststeuerung

Dieses Thema unterrichten

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.

Was Sie erwartet

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.

Diese Aktivitäten sind ein Ausgangspunkt. Die vollständige Mission ist das Erlebnis.

  • Vollständiges Moderationsskript mit Lehrkraft-Dialogen
  • Druckfertige Schülermaterialien, bereit für den Unterricht
  • Differenzierungsstrategien für jeden Lerntyp
Mission erstellen

Vorsicht vor diesen Fehlvorstellungen

Häufige FehlvorstellungWährend der Pair-Programming-Übung zur Singleton-Implementierung beobachten Sie, dass einige Paare das Muster als universelle Lösung für globale Objekte betrachten.

Was Sie stattdessen lehren sollten

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.

Häufige FehlvorstellungWä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.

Was Sie stattdessen lehren sollten

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.

Häufige FehlvorstellungWährend der Whole-Class-Diskussion zum Vergleich der Muster wird behauptet, Singleton und Factory seien austauschbar.

Was Sie stattdessen lehren sollten

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.

Ideen zur Lernstandserhebung

Lernstandskontrolle

Nach der Pair-Programming-Übung zur Singleton-Implementierung geben Sie jedem Schüler ein Code-Snippet, das entweder Singleton oder Dependency Injection verwendet. Bitten Sie die Schüler, zu identifizieren, welches Muster vorliegt, und zwei Sätze zu schreiben, die erklären, warum das Muster in diesem Kontext gewählt wurde.

Kurze Überprüfung

Während der Whole-Class-Diskussion zum Vergleich der Muster stellen Sie die Frage: 'Sie entwickeln eine Anwendung für ein Teamprojekt, in dem mehrere Logger gleichzeitig arbeiten müssen. Welches Muster würden Sie verwenden und warum? Beschreiben Sie kurz, wie Sie es implementieren würden.'

Diskussionsfrage

Nach der Kleingruppenarbeit zum Factory-Vergleich leiten Sie eine Diskussion mit der Frage: 'Unter welchen Umständen könnte die Verwendung des Factory-Musters zu Problemen bei der Wartung führen? Nennen Sie ein konkretes Beispiel und schlagen Sie eine alternative Lösung vor, die die Flexibilität erhält.'

Erweiterungen & Unterstützung

  • Fordern Sie schnelle Schülerinnen und Schüler auf, eine erweiterte Factory zu implementieren, die Objekte dynamisch aus einer Konfigurationsdatei liest.
  • Bieten Sie Schülerinnen und Schülern, die Schwierigkeiten haben, ein Code-Snippet mit beiden Mustern an, das sie Schritt für Schritt analysieren und umbauen sollen.
  • Vertiefen Sie das Thema, indem Sie eine Diskussion über moderne Alternativen wie Dependency Injection Container anregen und deren Vor- und Nachteile gegenüber Factory und Singleton abwägen.

Schlüsselvokabular

Singleton-MusterEin Entwurfsmuster, das sicherstellt, dass von einer Klasse nur eine einzige Instanz existiert und einen globalen Zugriffspunkt auf diese Instanz bereitstellt.
Factory-MusterEin Entwurfsmuster, das eine Schnittstelle zur Erzeugung von Objekten in einer Superklasse kapselt, aber Unterklassen entscheiden lässt, welche Klasse instanziiert wird.
InstanziierungDer Prozess der Erzeugung eines Objekts aus einer Klasse. Bei Entwurfsmustern wird gesteuert, wie und wann diese Erzeugung stattfindet.
KapselungDas Bündeln von Daten und Methoden, die auf diesen Daten operieren, innerhalb einer Einheit und die Beschränkung des Zugriffs auf diese Einheit von außen.
Globale VariableEine Variable, die außerhalb jeder Funktion oder jedes Blocks deklariert ist und somit im gesamten Programm zugänglich ist. Das Singleton-Muster nutzt oft einen globalen Zugriffspunkt.

Bereit, Entwurfsmuster: Singleton und Factory zu unterrichten?

Erstellen Sie eine vollständige Mission mit allem, was Sie brauchen

Mission erstellen