Softwarearchitektur: Design Patterns
Dieser Beitrag ist eine Begriffserklärung zu Design Patterns – inklusive Prüfungsfragen, Kernkomponenten und Tags.
In a Nutshell
Design Patterns (Entwurfsmuster) sind wiederverwendbare Lösungsansätze für häufige Probleme in der objektorientierten Softwareentwicklung. Sie verbessern Struktur, Wartbarkeit und Kommunikation.
Kompakte Fachbeschreibung
GoF-Patterns werden oft in drei Kategorien eingeteilt:
- Erzeugungsmuster (z.B. Singleton, Factory)
- Strukturmuster (z.B. Adapter, Fassade, Proxy)
- Verhaltensmuster (z.B. Observer, Strategy, Command)
Patterns sind keine fertigen Klassen, sondern Konzepte, die sich in vielen Sprachen umsetzen lassen. Sie schaffen ein gemeinsames Vokabular im Team.
Prüfungsrelevante Stichpunkte
- Kategorien: Erzeugung, Struktur, Verhalten
- Wiederverwendbare Lösungen
- Entkopplung und Erweiterbarkeit
- Praxisrelevant (Java, C#, Python)
- Security: z.B. Singleton für zentrale Zugriffskontrolle
- Wirtschaftlichkeit: weniger Entwicklungszeit
- Doku: Musterwahl + Diagramme
Kernkomponenten (Beispiele)
- Singleton
- Factory Method
- Observer
- Adapter
- Strategy
- Decorator
- Proxy
- Command
- Fassade
- Builder
Praxisbeispiel (Singleton in Python)
class Logger:
_instance = None
def __new__(cls):
if cls._instance is None:
cls._instance = super().__new__(cls)
return cls._instance
Vorteile und Nachteile
Vorteile
- Bewährte Lösungsansätze
- Einheitliche Sprache im Team
- Entkopplung
- Wartbarkeit
Nachteile
- Falscher Einsatz erzeugt Komplexität
- Overengineering bei kleinen Problemen
Typische Prüfungsfragen (mit Kurzantwort)
- Was ist ein Design Pattern? Bewährte Lösungsvorlage für ein wiederkehrendes Entwurfsproblem.
- Welche Kategorien gibt es? Erzeugungs-, Struktur- und Verhaltensmuster.
- Was macht Singleton aus? Genau eine Instanz pro Anwendungskontext.
- Wann nutzt man Observer? Wenn mehrere Objekte auf Änderungen reagieren sollen.
Freie Antwort
Patterns sind sinnvoll, wenn sie ein konkretes Problem lösen. In Projektdokus kannst du sie nutzen, um strukturiertes Design zu zeigen – aber nicht „Patternitis“ betreiben.
Lernstrategie
- 3–5 Muster lernen + Rollen verstehen.
- 2 Muster selbst implementieren.
- In 5 Zeilen Einsatz/Nutzen erklären üben.
- Muster nur bei echtem Bedarf einsetzen.
Themenanalyse
- Kern: Entwurfsmuster
- Herausforderungen: Rollen/Overhead
- Sicherheit: Zugriffskontrolle
- Doku: Musterbegründung
- Wirtschaftlichkeit: Wiederverwendung