Skip to content
Informatik · Klasse 12

Ideen für aktives Lernen

Entwurfsmuster: Strategy und Observer

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.

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

Aktivität 01

Problemorientiertes Lernen45 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.

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

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

Worauf zu achten istGeben Sie den Schülern ein kleines Code-Snippet, das eine Reihe von if-else-Anweisungen zur Auswahl eines Algorithmus enthält. Bitten Sie sie, eine kurze Erklärung zu schreiben, wie das Strategy-Muster diese Struktur vereinfachen würde und welche Vorteile dies bringt.

AnalysierenBewertenErschaffenEntscheidungsfähigkeitSelbststeuerungBeziehungsfähigkeit
Komplette Unterrichtsstunde erstellen

Aktivität 02

Problemorientiertes Lernen50 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.

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

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

Worauf zu achten istStellen Sie den Schülern die folgende Frage: 'Stellen Sie sich ein Wetter-App-Dashboard vor, das verschiedene Wetterdaten anzeigt. Erklären Sie, wie das Observer-Muster helfen würde, die Anzeige zu aktualisieren, wenn neue Wetterdaten vom Server eintreffen. Nennen Sie das Subjekt und mindestens zwei Observer.'

AnalysierenBewertenErschaffenEntscheidungsfähigkeitSelbststeuerungBeziehungsfähigkeit
Komplette Unterrichtsstunde erstellen

Aktivität 03

Problemorientiertes Lernen40 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.

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

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

Worauf zu achten istDiskutieren Sie in Kleingruppen: 'In welchen Situationen wäre die Verwendung des Observer-Musters übertrieben oder sogar nachteilig? Nennen Sie ein Szenario, in dem die direkte Kopplung oder eine einfachere Benachrichtigungslogik besser geeignet wäre, und begründen Sie Ihre Wahl.'

AnalysierenBewertenErschaffenEntscheidungsfähigkeitSelbststeuerungBeziehungsfähigkeit
Komplette Unterrichtsstunde erstellen

Aktivität 04

Problemorientiertes Lernen30 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.

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

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

Worauf zu achten istGeben Sie den Schülern ein kleines Code-Snippet, das eine Reihe von if-else-Anweisungen zur Auswahl eines Algorithmus enthält. Bitten Sie sie, eine kurze Erklärung zu schreiben, wie das Strategy-Muster diese Struktur vereinfachen würde und welche Vorteile dies bringt.

AnalysierenBewertenErschaffenEntscheidungsfähigkeitSelbststeuerungBeziehungsfähigkeit
Komplette Unterrichtsstunde erstellen

Vorlagen

Vorlagen, die zu diesen Informatik-Aktivitäten passen

Nutzen, bearbeiten, drucken oder teilen.

Einige Hinweise zum Unterrichten dieser Einheit

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.

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.


Vorsicht vor diesen Fehlvorstellungen

  • Wä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.

    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.

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

    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.

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

    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.


In dieser Übersicht verwendete Methoden