Skip to content

Entwurfsmuster: Strategy und ObserverAktivitäten & Unterrichtsstrategien

Aktive Lernformen wie Paarprogrammierung oder Gruppenarbeit machen die abstrakten Konzepte der Entwurfsmuster Strategy und Observer greifbar. Durch das direkte Arbeiten mit Code und Szenarien erkennen Schülerinnen und Schüler sofort, wie diese Muster Wartbarkeit und Flexibilität erhöhen, statt nur Theorie zu hören.

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

Lernziele

  1. 1Analysieren Sie Code-Beispiele, um die Struktur und den Zweck des Strategy-Musters zu identifizieren.
  2. 2Erklären Sie die Vorteile des Observer-Musters hinsichtlich der losen Kopplung anhand eines GUI-Simulationsszenarios.
  3. 3Implementieren Sie das Strategy-Muster zur dynamischen Anpassung des Verhaltens einer Anwendung in einer gegebenen Programmieraufgabe.
  4. 4Entwerfen Sie eine einfache Anwendung, die das Observer-Muster zur Benachrichtigung mehrerer Komponenten über Zustandsänderungen nutzt.
  5. 5Vergleichen Sie die Komplexität einer Lösung mit verschachtelten bedingten Anweisungen mit einer Strategy-Muster-Implementierung für dieselbe Funktionalität.

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

45 Min.·Partnerarbeit

Paarprogrammierung: Strategy für Sortieralgorithmen

Paare implementieren eine Sortierklasse mit Strategy-Interface für Bubble- und QuickSort. Sie tauschen Algorithmen zur Laufzeit und messen Laufzeiten. Abschließend refaktorisieren sie eine if-else-Version.

Vorbereitung & Details

Wie erkennt man Situationen, in denen ein spezifisches Muster wie Strategy die Komplexität reduziert?

Moderationstipp: Fordern Sie die Paare auf, ihre Strategie-Implementierungen gegenseitig zu testen, indem sie die Sortieralgorithmen auswechseln und die Ergebnisse vergleichen.

Setup: Gruppentische mit Zugang zu Recherchequellen

Materials: Dokumentation des Problemszenarios, KWL-Tabelle (Wissen, Wollen, Lernen) oder Inquiry-Framework, Ressourcenpool / Handapparat, Vorlage für die Ergebnispräsentation

AnalysierenBewertenErschaffenEntscheidungsfähigkeitSelbststeuerungBeziehungsfähigkeit
50 Min.·Kleingruppen

Gruppenarbeit: Observer für Wetterstation

Gruppen modellieren eine Wetterstation als Subject mit Temperatur-Observern. Sie implementieren attach/detach/notify und testen mit mehreren Displays. Eine Präsentation zeigt lose Kopplung.

Vorbereitung & Details

Erklären Sie, wie das Observer-Muster die lose Kopplung zwischen Objekten fördert.

Moderationstipp: Geben Sie der Gruppe eine klare Struktur für die Observer-Implementierung vor, z.B. ein Interface mit update()- und attach()/detach()-Methoden, um die lose Kopplung sichtbar zu machen.

Setup: Gruppentische mit Zugang zu Recherchequellen

Materials: Dokumentation des Problemszenarios, KWL-Tabelle (Wissen, Wollen, Lernen) oder Inquiry-Framework, Ressourcenpool / Handapparat, Vorlage für die Ergebnispräsentation

AnalysierenBewertenErschaffenEntscheidungsfähigkeitSelbststeuerungBeziehungsfähigkeit
40 Min.·Ganze Klasse

Whole-Class-Refactoring: Von Conditionals zu Patterns

Die Klasse analysiert gemeinsam eine Event-Handler-Klasse mit if-else. Sie refactoren zu Strategy/Observer und vergleichen in Plenum. Jede*r testet eine Variante.

Vorbereitung & Details

Konstruieren Sie ein Szenario, in dem das Strategy-Muster eine bessere Lösung bietet als bedingte Anweisungen.

Moderationstipp: Nutzen Sie ein gemeinsames Code-Beispiel mit vielen if-else-Blöcken und zeigen Sie live, wie das Refactoring zum Strategy-Muster die Lesbarkeit und Erweiterbarkeit verbessert.

Setup: Gruppentische mit Zugang zu Recherchequellen

Materials: Dokumentation des Problemszenarios, KWL-Tabelle (Wissen, Wollen, Lernen) oder Inquiry-Framework, Ressourcenpool / Handapparat, Vorlage für die Ergebnispräsentation

AnalysierenBewertenErschaffenEntscheidungsfähigkeitSelbststeuerungBeziehungsfähigkeit
30 Min.·Einzelarbeit

Individual: Muster-Szenario entwerfen

Jede*r entwirft ein reales Szenario für Strategy oder Observer, skizziert UML und codet Prototyp. Peer-Review folgt.

Vorbereitung & Details

Wie erkennt man Situationen, in denen ein spezifisches Muster wie Strategy die Komplexität reduziert?

Moderationstipp: Legen Sie für die individuelle Szenario-Entwürfe klare Kriterien fest, z.B. mindestens zwei austauschbare Strategien oder drei Observer, die auf ein Subject reagieren.

Setup: Gruppentische mit Zugang zu Recherchequellen

Materials: Dokumentation des Problemszenarios, KWL-Tabelle (Wissen, Wollen, Lernen) oder Inquiry-Framework, Ressourcenpool / Handapparat, Vorlage für die Ergebnispräsentation

AnalysierenBewertenErschaffenEntscheidungsfähigkeitSelbststeuerungBeziehungsfähigkeit

Dieses Thema unterrichten

Lehrerinnen und Lehrer beginnen mit konkreten Problemen, die durch bedingte Anweisungen oder starre Kopplung entstehen. Sie zeigen nicht nur die Lösung, sondern lassen Lernende selbst nach Alternativen suchen, etwa durch gezielte Fragen wie 'Wo sehen Sie Redundanzen im Code?'. Wichtig ist, dass die Vorteile der Muster nicht nur theoretisch erklärt, sondern durch praktische Beispiele und Messungen (z.B. Anzahl der Zeilen vor/nach Refactoring) sichtbar werden.

Was Sie erwartet

Am Ende sollen Lernende in der Lage sein, selbstständig Strategy und Observer anzuwenden, um bedingte Anweisungen zu reduzieren und lose Kopplung zu demonstrieren. Die Aktivitäten fördern das Verständnis für die Vorteile dieser Muster in realen Softwarearchitekturen.

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 Paarprogrammierung zu Strategy für Sortieralgorithmen, achten Sie darauf, dass Schülerinnen und Schüler nicht annehmen, Strategy sei ausschließlich für Sortierlogik geeignet.

Was Sie stattdessen lehren sollten

Während der Paarprogrammierung lassen Sie die Lernenden gezielt nach weiteren Anwendungsfällen suchen, z.B. Zahlungsmethoden oder Berechnungslogik, und dokumentieren Sie die gefundenen Beispiele auf einem Plakat.

Häufige FehlvorstellungWährend der Gruppenarbeit zu Observer für die Wetterstation, erkennen Sie oft die Annahme, das Muster erfordere enge Kopplung zwischen Subject und Observers.

Was Sie stattdessen lehren sollten

Während der Gruppenarbeit fordern Sie die Lernenden auf, die attach()- und detach()-Methoden zu nutzen und die Schnittstellen (Interfaces) explizit zu benennen, um die lose Kopplung sichtbar zu machen.

Häufige FehlvorstellungWährend des Whole-Class-Refactorings von Conditionals zu Patterns, kann die Annahme entstehen, beide Muster erhöhten den Codeumfang unnötig.

Was Sie stattdessen lehren sollten

Während des Refactorings machen Sie die Wartbarkeit messbar, indem Sie vor und nach dem Refactoring die Anzahl der Zeilen und die Komplexität (z.B. mit Tools wie SonarQube) vergleichen und die Ergebnisse visualisieren.

Ideen zur Lernstandserhebung

Lernstandskontrolle

Nach der Paarprogrammierung zu Strategy für Sortieralgorithmen geben Sie den Lernenden ein Code-Snippet mit if-else-Blöcken zur Auswahl eines Algorithmus. Sie sollen erklären, wie das Strategy-Muster diese Struktur vereinfacht und welche Vorteile dies für spätere Erweiterungen hat.

Kurze Überprüfung

Nach der Gruppenarbeit zu Observer für die Wetterstation stellen Sie den Lernenden die Frage: 'Wie würde das Observer-Muster die Anzeige in einer Wetter-App aktualisieren, wenn neue Daten vom Server kommen? Nennen Sie das Subject und mindestens zwei Observer und beschreiben Sie den Benachrichtigungsprozess.'

Diskussionsfrage

Während der individuellen Szenario-Entwürfe diskutieren die Lernenden in Kleingruppen: 'In welchen Fällen wäre das Observer-Muster übertrieben? Nennen Sie ein Szenario, in dem direkte Kopplung oder eine einfachere Benachrichtigungslogik besser geeignet wäre, und begründen Sie Ihre Wahl.'

Erweiterungen & Unterstützung

  • Fordern Sie schnelle Lernende auf, ein drittes Muster (z.B. Factory) in ihr Szenario einzubauen, um die Strategien dynamisch zu erzeugen.
  • Für Lernende mit Schwierigkeiten bereiten Sie ein vorbereitetes Code-Gerüst vor, das nur noch die fehlenden Methoden ergänzen muss.
  • Vertiefen Sie mit einer Diskussion: 'Wie würden Sie das Observer-Muster anpassen, wenn Observer unterschiedliche Prioritäten bei der Benachrichtigung haben sollen?'

Schlüsselvokabular

Strategy-MusterEin Entwurfsmuster, das es ermöglicht, eine Familie von Algorithmen zu definieren, jeden Algorithmus in eine separate Klasse zu kapseln und ihre Objekte austauschbar zu machen.
Observer-MusterEin Entwurfsmuster, das eine Eins-zu-viele-Abhängigkeit zwischen Objekten definiert, sodass, wenn sich ein Objekt ändert, alle seine Abhängigen automatisch benachrichtigt und aktualisiert werden.
Lose KopplungEin Designprinzip, bei dem Komponenten eines Systems so wenig wie möglich voneinander abhängig sind, was Änderungen an einer Komponente erleichtert, ohne andere zu beeinträchtigen.
Kontext (Strategy)Die Klasse, die eine Referenz auf ein Strategy-Objekt hält und die Strategie zur Laufzeit auswählt oder ändert.
Subjekt (Observer)Das Objekt, das den Zustand verwaltet und die Observer über Änderungen informiert.
AbstraktionDie Darstellung wesentlicher Merkmale eines Objekts oder Systems, die die Komplexität verbirgt und die Handhabung vereinfacht.

Bereit, Entwurfsmuster: Strategy und Observer zu unterrichten?

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

Mission erstellen