Skip to content

Entwurfsmuster (Design Patterns)Aktivitäten & Unterrichtsstrategien

Entwurfsmuster sind kein trockenes Regelwerk, sondern lebendige Werkzeuge, die Problemlösen konkret machen. Durch aktive Anwendung begreifen Schülerinnen und Schüler, wie Muster Abhängigkeiten durchbrechen und Wartbarkeit erhöhen. Handlungsorientierte Methoden wie Pair-Programming oder Refactoring-Challenges zeigen direkt, warum Theorie und Praxis hier zusammengehören.

Klasse 10Digitale Welten Gestalten: Informatik in der Praxis4 Aktivitäten25 Min.45 Min.

Lernziele

  1. 1Analysieren Sie die Struktur und den Zweck von drei gängigen Entwurfsmustern (z.B. Singleton, Factory, Observer).
  2. 2Vergleichen Sie die Vor- und Nachteile der Anwendung des Singleton-Musters in verschiedenen Anwendungsszenarien.
  3. 3Entwerfen Sie eine einfache Klassendiagrammlösung unter Verwendung eines ausgewählten Entwurfsmusters zur Bewältigung eines gegebenen Designproblems.
  4. 4Bewerten Sie die Eignung eines bestehenden Entwurfsmusters für ein spezifisches Programmierproblem.
  5. 5Erklären Sie, wie Entwurfsmuster die Wiederverwendbarkeit und Wartbarkeit von objektorientiertem Code verbessern.

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

30 Min.·Partnerarbeit

Pair-Programming: Singleton implementieren

Paare erhalten einen unvollständigen Code mit mehreren Instanzen einer Klasse. Sie implementieren das Singleton-Muster, testen es und dokumentieren den Effekt auf Speicherverbrauch. Abschließend präsentieren sie den refaktorierten Code der Klasse.

Vorbereitung & Details

Wie können Entwurfsmuster die Wiederverwendbarkeit und Wartbarkeit von Code verbessern?

Moderationstipp: Gib beim Pair-Programming klare Rollen vor: Eine Person schreibt Code, die andere analysiert und hinterfragt jede Zeile. Wechselt die Rollen nach 15 Minuten.

Setup: Gruppentische mit Platz für die Fallunterlagen

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

AnalysierenBewertenErschaffenEntscheidungsfähigkeitSelbststeuerung
45 Min.·Kleingruppen

Small Groups: Pattern-Vergleich

Gruppen analysieren drei Szenarien (z.B. Logger, Konfigurationsmanager, UI-Controller) und wählen passende Muster. Sie skizzieren UML-Diagramme, implementieren Prototypen und diskutieren Vor-/Nachteile in Plenum.

Vorbereitung & Details

Analysieren Sie die Vor- und Nachteile des Singleton-Musters in verschiedenen Kontexten.

Moderationstipp: Stelle beim Pattern-Vergleich konkrete Code-Snippets bereit, die dasselbe Problem einmal mit Factory und einmal mit Builder lösen. So wird der Unterschied greifbar.

Setup: Gruppentische mit Platz für die Fallunterlagen

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

AnalysierenBewertenErschaffenEntscheidungsfähigkeitSelbststeuerung
40 Min.·Ganze Klasse

Whole Class: Refactoring-Challenge

Die Klasse refaktoriert gemeinsam einen chaotischen Code-Bestand mit Factory-Muster. Lehrer moderiert, Schüler voten per Tool (z.B. Mentimeter) über Schritte. Abschluss: Gemeinsame Review der Verbesserungen.

Vorbereitung & Details

Wann ist es sinnvoll, ein bestehendes Entwurfsmuster zu adaptieren oder ein neues zu entwickeln?

Moderationstipp: Mach bei der Refactoring-Challenge vorab ein schlechtes Code-Beispiel sichtbar, zum Beispiel eine Klasse mit 200 Zeilen. Die Schüler sollen erkennen, wie Muster hier Struktur schaffen.

Setup: Gruppentische mit Platz für die Fallunterlagen

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

AnalysierenBewertenErschaffenEntscheidungsfähigkeitSelbststeuerung
25 Min.·Einzelarbeit

Individual: Muster-Anpassung

Jeder Schüler passt ein Observer-Muster an ein eigenes Projekt an (z.B. Wetter-App). Sie notieren Gründe für Änderungen und teilen in Peer-Feedback-Runde.

Vorbereitung & Details

Wie können Entwurfsmuster die Wiederverwendbarkeit und Wartbarkeit von Code verbessern?

Moderationstipp: Fordere bei der Muster-Anpassung gezielt Variationen: 'Wie sähe das Singleton aus, wenn wir Thread-Safety mit synchronisierten Methoden umsetzen?'

Setup: Gruppentische mit Platz für die Fallunterlagen

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

AnalysierenBewertenErschaffenEntscheidungsfähigkeitSelbststeuerung

Dieses Thema unterrichten

Lehrkräfte sollten Entwurfsmuster nicht isoliert unterrichten, sondern immer im Kontext konkreter Probleme. Beginne mit kleinen, fehlerhaften Code-Beispielen, die die Schüler selbst reparieren. Vermeide Frontalunterricht zu den Mustern selbst – stattdessen lass sie durch Tun entstehen. Achte darauf, dass die Diskussion über Vor- und Nachteile im Mittelpunkt steht, nicht die perfekte Umsetzung. Forschung zeigt, dass Schüler Muster besser verstehen, wenn sie deren Wirkung im Code selbst erleben, statt nur Definitionen zu lernen.

Was Sie erwartet

Am Ende der Einheit können die Lernenden Entwurfsmuster nicht nur benennen, sondern gezielt einsetzen, ihre Vor- und Nachteile abwägen und in realen Code-Situationen anpassen. Sie diskutieren bewusst, wann ein Muster passt und wann eine einfachere Lösung vorzuziehen ist. Ihr Code wird klarer, testbarer und leichter erweiterbar.

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 des Pair-Programmings zum Singleton-Muster beobachte, ob Schüler starre Lösungen vorschlagen, die Thread-Safety ignorieren.

Was Sie stattdessen lehren sollten

Gib den Teams den Auftrag, zwei Varianten zu implementieren: eine naive und eine threadsichere Version. Lasst sie die Unterschiede in der Laufzeit und Komplexität vergleichen.

Häufige FehlvorstellungWährend des Pattern-Vergleichs nehmen einige Schüler an, Singleton sei immer die beste Wahl für globale Zustände.

Was Sie stattdessen lehren sollten

Zeige den Gruppen bewusst Beispiele, in denen Singleton zu Problemen führt, etwa bei Unit-Tests. Fordere sie auf, Alternativen wie Dependency Injection zu skizzieren.

Häufige FehlvorstellungWährend der Refactoring-Challenge argumentieren manche, dass mehr Muster automatisch zu besserem Code führen.

Was Sie stattdessen lehren sollten

Gib den Schülern die Aufgabe, bewusst ein Muster zu entfernen, wenn es den Code unnötig verkompliziert. Lasst sie die Auswirkungen auf Lesbarkeit und Wartung diskutieren.

Ideen zur Lernstandserhebung

Lernstandskontrolle

Nach der Singleton-Implementierung erhalten die Schüler ein Code-Snippet, das einen globalen Logger ohne Muster nutzt. Sie notieren auf einer Karte, welches Muster sie einsetzen würden und warum.

Kurze Überprüfung

Nach dem Pattern-Vergleich fragst du mündlich: 'Nennt eine Situation, in der das Factory-Muster einem einfachen new()-Aufruf überlegen ist.' Sammle die Antworten und kläre Missverständnisse direkt.

Gegenseitige Bewertung

Während der Refactoring-Challenge präsentieren die Gruppen ihre Lösungen der Nachbargruppe. Die Zuhörer geben Feedback zum gewählten Muster, zur Klarheit des Diagramms und zur korrekten Anwendung der Logik.

Diskussionsfrage

Nach der Muster-Anpassung führst du eine Klassendiskussion: 'Welche Muster würdet ihr in eurem eigenen Projekt einsetzen, und warum?' Sammle die Argumente an der Tafel und reflektiert gemeinsam über Trade-offs.

Erweiterungen & Unterstützung

  • Fordere die schnellen Gruppen auf, ein komplexeres Muster wie State oder Strategy in ein bestehendes Projekt zu integrieren und die Veränderungen zu dokumentieren.
  • Biete Schülern, die unsicher sind, ein vorbereitetes Code-Skelett an, das bereits Grundgerüste für Factory oder Observer enthält. So können sie sich auf die Logik konzentrieren.
  • Vertiefe mit der ganzen Klasse die Diskussion: 'Welche Muster eignen sich für verteilte Systeme?' und lasst sie eigene Beispiele aus der Praxis recherchieren.

Schlüsselvokabular

Entwurfsmuster (Design Pattern)Eine wiederverwendbare, allgemeine Lösung für ein häufig auftretendes Problem im Softwareentwurf. Muster beschreiben keine fertige Lösung, sondern eine Vorlage, die in vielen Situationen angewendet werden kann.
Singleton-MusterEin Erzeugungsmuster, das sicherstellt, dass eine Klasse nur eine einzige Instanz hat und einen globalen Zugriffspunkt auf diese Instanz bereitstellt.
Factory-Muster (Fabrikmuster)Ein Erzeugungsmuster, das eine Schnittstelle zur Erzeugung von Objekten in einer Superklasse bereitstellt, aber Unterklassen erlauben, den Typ des zu erzeugenden Objekts zu ändern.
Observer-MusterEin Verhaltensmuster, das eine Eins-zu-viele-Abhängigkeit zwischen Objekten definiert, sodass, wenn ein Objekt seinen Zustand ändert, alle abhängigen Objekte automatisch benachrichtigt und aktualisiert werden.
Kopplung (Coupling)Das Maß, in dem Module oder Klassen voneinander abhängig sind. Geringe Kopplung ist oft wünschenswert, um die Wartbarkeit zu verbessern.
Kohäsion (Cohesion)Das Maß, in dem die Elemente einer einzelnen Klasse oder eines Moduls zusammengehören. Hohe Kohäsion ist oft wünschenswert.

Bereit, Entwurfsmuster (Design Patterns) zu unterrichten?

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

Mission erstellen