Skip to content
Informatik · Klasse 12

Ideen für aktives Lernen

Entwurfsmuster: Singleton und Factory

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.

KMK BildungsstandardsKMK: Sekundarstufe II - Modellieren und ImplementierenKMK: Sekundarstufe II - Problemlösen und Handeln
30–50 Min.Partnerarbeit → Ganze Klasse4 Aktivitäten

Aktivität 01

Fallstudienanalyse45 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.

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

Fallstudienanalyse50 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.

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

Fallstudienanalyse30 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.

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

Fallstudienanalyse35 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.

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

Vorlagen

Vorlagen, die zu diesen Informatik-Aktivitäten passen

Nutzen, bearbeiten, drucken oder teilen.

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