Zum Inhalt springen
Informatik · Klasse 12 · Objektorientierte Modellierung und Software-Engineering · 1. Halbjahr

Entwurfsmuster: Singleton und Factory

Die Schülerinnen und Schüler wenden die Entwurfsmuster Singleton und Factory an, um die Objekterzeugung und -verwaltung zu optimieren.

KMK BildungsstandardsKMK: Sekundarstufe II - Modellieren und ImplementierenKMK: Sekundarstufe II - Problemlösen und Handeln

Über dieses Thema

Entwurfsmuster wie Singleton und Factory optimieren die Objekterzeugung und -verwaltung in objektorientierter Programmierung. Das Singleton-Muster gewährleistet genau eine Instanz einer Klasse mit globalem Zugriffspunkt, ideal für Ressourcen wie Logger oder Konfigurationsmanager. Das Factory-Muster kapselt die Objekterzeugung, sodass Client-Code unabhängig von konkreten Klassen bleibt und Erweiterungen erleichtert werden. Schülerinnen und Schüler lernen, diese Muster anzuwenden, um Code wartbarer und flexibler zu gestalten.

Im KMK-Lehrplan Sekundarstufe II fördern diese Muster das Modellieren und Implementieren sowie Problemlösen. Schüler vergleichen Anwendungsbereiche: Singleton eignet sich für einzigartige Objekte, Factory für polymorphische Hierarchien. Sie beurteilen Vor- und Nachteile, etwa die eingeschränkte Testbarkeit von Singleton durch globale Zustände oder die erhöhte Flexibilität von Factory bei Varianten.

Aktives Lernen eignet sich hervorragend, da Schüler die Muster selbst implementieren und refactoren. Pair-Programming-Sessions oder Gruppenvergleiche von Code-Varianten machen abstrakte Konzepte greifbar, fördern Diskussionen zu Trade-offs und verbessern das Verständnis durch iterative Anpassungen.

Leitfragen

  1. Warum ist es sinnvoll, bewährte Entwurfsmuster statt individueller Ad-hoc-Lösungen zu nutzen?
  2. Vergleichen Sie die Anwendungsbereiche des Singleton- und des Factory-Musters.
  3. Beurteilen Sie die Vor- und Nachteile des Singleton-Musters in Bezug auf Testbarkeit und Flexibilität.

Lernziele

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

Bevor es losgeht

Grundlagen der Objektorientierten Programmierung (Klasse 11)

Warum: Schüler müssen die Konzepte von Klassen, Objekten, Instanzen und Methoden verstehen, um Entwurfsmuster anwenden zu können.

Klassen und Objekte: Erzeugung und Lebenszyklus

Warum: Ein grundlegendes Verständnis davon, wie Objekte erstellt und verwaltet werden, ist notwendig, um die Optimierungen durch Entwurfsmuster nachvollziehen zu können.

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.

Vorsicht vor diesen Fehlvorstellungen

Häufige FehlvorstellungSingleton ist immer die beste Wahl für globale Objekte.

Was Sie stattdessen lehren sollten

Singleton birgt Risiken wie versteckte Abhängigkeiten und schlechte Testbarkeit. Aktive Refactoring-Übungen in Paaren zeigen Alternativen wie Dependency Injection und fördern Diskussionen zu Kontextabhängigkeit.

Häufige FehlvorstellungFactory-Muster macht Code unnötig kompliziert.

Was Sie stattdessen lehren sollten

Factory trennt Erzeugung von Nutzung und erleichtert Polymorphie. Gruppenvergleiche von Code-Varianten verdeutlichen Vorteile bei Erweiterungen, Pair-Tests beweisen Einfachheit in der Praxis.

Häufige FehlvorstellungSingleton und Factory sind austauschbar.

Was Sie stattdessen lehren sollten

Singleton zielt auf Einzigartigkeit, Factory auf Abstraktion der Erzeugung. Whole-Class-Diskussionen klären Anwendungsbereiche durch Beispiele und Trade-off-Analysen.

Ideen für aktives Lernen

Alle Aktivitäten ansehen

Bezüge zur Lebenswelt

  • In der Softwareentwicklung für Betriebssysteme wird das Singleton-Muster oft für zentrale Dienste wie den Event-Logger oder den Konfigurationsmanager verwendet, um sicherzustellen, dass diese nur einmal initialisiert werden und von überall im System zugänglich sind.
  • Bei der Entwicklung von Spielen kann eine Factory-Klasse verwendet werden, um verschiedene Arten von Gegnern oder Spielobjekten zu erstellen. Dies ermöglicht es dem Spielentwickler, neue Gegnertypen hinzuzufügen, ohne den Kerncode des Spiels ändern zu müssen.
  • In Webanwendungen wird das Singleton-Muster häufig für Datenbankverbindungs-Pools eingesetzt, um die Anzahl der Datenbankverbindungen zu begrenzen und die Leistung zu optimieren, indem sichergestellt wird, dass nur eine einzige Verbindungskonfiguration aktiv ist.

Ideen zur Lernstandserhebung

Lernstandskontrolle

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

Kurze Überprüfung

Stellen 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.'

Diskussionsfrage

Leiten 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.'

Häufig gestellte Fragen

Was ist der Unterschied zwischen Singleton- und Factory-Muster?
Singleton sorgt für eine einzige Instanz mit globalem Zugriff, z. B. für Konfigurationen. Factory kapselt Objekterzeugung, um Client-Code von konkreten Klassen unabhängig zu machen. Beide optimieren Objektmanagement, doch Singleton adressiert Einzigartigkeit, Factory Flexibilität. Praktische Implementierungen zeigen: Singleton ersetzt mehrere new(), Factory erlaubt Varianten ohne Code-Änderungen. (62 Wörter)
Wie bewertet man Vor- und Nachteile des Singleton-Musters?
Vorteile: Zentrale Ressourcenkontrolle, Speicherersparnis. Nachteile: Globale Zustände erschweren Tests, versteckte Kopplungen mindern Flexibilität. Schüler diskutieren reale Szenarien wie Logger vs. Datenbanken. Aktive Übungen wie Refactoring zu Mock-Objekten verdeutlichen Testverbesserungen und fördern nuanciertes Denken. (68 Wörter)
Wie kann aktives Lernen Entwurfsmuster vermitteln?
Pair-Programming und Gruppen-Refactoring machen Muster greifbar: Schüler implementieren Singleton, testen und diskutieren Trade-offs. Whole-Class-Analysen von Code-Beispielen fördern Vergleiche. Solche Ansätze verbinden Theorie mit Praxis, steigern Retention durch Iteration und Peer-Feedback. Messbare Erfolge: Bessere Testbarkeit in Schülercode nach Sessions. (72 Wörter)
Wann wendet man Factory-Muster an?
Factory eignet sich bei polymorphen Objekten, z. B. UI-Elemente oder Daten-Parser, wo Typen zur Laufzeit variieren. Es folgt Open-Closed-Prinzip: Erweiterbar ohne Änderung. Schüler üben mit Shape-Beispielen, erweitern um Circle und testen. Dies trainiert Modellierung nach KMK-Standards. (64 Wörter)

Planungsvorlagen für Informatik