Skip to content
IRC-Coding IRC-Coding
Design Patterns Singleton Observer Factory Adapter Iterator Strategy Decorator Template Method MVC

Design Patterns Singleton, Observer, Factory, Adapter, Iterator, Strategy, Decorator

Design Patterns: bewährte Lösungen für wiederkehrende Probleme. Mit Singleton, Observer, Factory, Adapter, Iterator, Strategy, Decorator, Template Method, MVC und Prüfungsfragen.

S

schutzgeist

2 min read

Design Patterns – Singleton, Observer, Factory, Adapter, Iterator, Strategy, Decorator

Dieser Beitrag ist eine Begriffserklärung zu wichtigen Design Patterns – inklusive Prüfungsfragen und Tags.

In a Nutshell

Design Patterns sind bewährte Lösungsansätze für wiederkehrende Probleme in der Softwareentwicklung. Sie bieten standardisierte Entwurfsmuster für häufige Situationen und verbessern Code-Qualität, Wartbarkeit und Kommunikation.

Kompakte Fachbeschreibung

Design Patterns wurden durch die “Gang of Four” (GoF) populärisiert und beschreiben erprobte Lösungsstrategien für typische Probleme der objektorientierten Programmierung. Sie kategorisieren sich in Creational Patterns (Erzeugungsmuster wie Singleton, Factory), Structural Patterns (Strukturmuster wie Adapter, Decorator) und Behavioral Patterns (Verhaltensmuster wie Observer, Strategy, Iterator). Patterns fördern lose Kopplung, hohe Kohäsion und Wiederverwendbarkeit. Sie sind keine fertigen Algorithmen, sondern abstrakte Lösungsbeschreibungen, die auf spezifische Kontexte angepasst werden müssen.

Prüfungsrelevante Stichpunkte

  • Creational Patterns: Singleton, Factory, Abstract Factory, Builder
  • Structural Patterns: Adapter, Decorator, Facade, Proxy, Composite
  • Behavioral Patterns: Observer, Strategy, Iterator, Command, Template Method
  • Singleton: Globale Instanz, thread-safe Implementierung
  • Observer: Publisher-Subscriber, lose Kopplung zwischen Objekten
  • Factory: Objekterzeugung ohne konkrete Klassen zu kennen
  • Adapter: Schnittstellenanpassung zwischen inkompatiblen Klassen
  • Iterator: Sequenzieller Zugriff auf Collection-Elemente ohne interne Struktur preiszugeben
  • Strategy: Austauschbare Algorithmen durch Interface-basierte Implementierung

Kernkomponenten

  1. Singleton Pattern (globale Instanz)
  2. Factory Pattern (Objekterzeugung)
  3. Observer Pattern (Beobachter-Muster)
  4. Adapter Pattern (Schnittstellenanpassung)
  5. Iterator Pattern (Sequenzieller Zugriff)
  6. Strategy Pattern (Algorithmen-Austausch)
  7. Decorator Pattern (dynamische Erweiterung)
  8. Template Method Pattern (Algorithmus-Gerüst)
  9. MVC Pattern (Architektur-Muster)
  10. Registry Pattern (zentrale Registrierung)

Praxisbeispiel

// Singleton Pattern Beispiel
public class DatabaseConnection {
    private static DatabaseConnection instance;
    
    private DatabaseConnection() {
        // Private Constructor
    }
    
    public static synchronized DatabaseConnection getInstance() {
        if (instance == null) {
            instance = new DatabaseConnection();
        }
        return instance;
    }
}

// Observer Pattern Beispiel
interface Observer {
    void update(String message);
}

class EmailNotification implements Observer {
    public void update(String message) {
        sendEmail(message);
    }
}

Erklärung: Singleton sichert globale Instanz, Observer ermöglicht Benachrichtigung bei Zustandsänderungen.

Vorteile und Nachteile

Vorteile

  • Bewährte Lösungen für bekannte Probleme
  • Verbesserte Kommunikation zwischen Entwicklern
  • Fördern lose Kopplung und hohe Kohäsion
  • Erhöhen Wiederverwendbarkeit und Wartbarkeit

Nachteile

  • Können zu unnötiger Komplexität führen
  • Lernkurve für Anfänger
  • Manchmal Over-Engineering für einfache Probleme
  • Erfordern kontextgerechte Anpassung

Typische Prüfungsfragen (mit Kurzantwort)

  1. Zwei Hauptkategorien von Design Patterns? Creational (Erzeugung), Structural (Struktur), Behavioral (Verhalten).

  2. Singleton Pattern Zweck? Sicherstellung, dass von einer Klasse genau eine Instanz existiert und global zugänglich ist.

  3. Observer Pattern Anwendung? Wenn mehrere Objekte über Zustandsänderungen eines anderen Objekts informiert werden sollen.

  4. Factory Pattern löst welches Problem? Objekterzeugung ohne konkrete Klassen im Client-Code kennen zu müssen.

  5. Adapter vs. Decorator? Adapter passt Schnittstellen an, Decorator fügt Funktionalität dynamisch hinzu.

  6. Iterator Pattern Vorteil? Ermöglicht einheitlichen Zugriff auf verschiedene Collection-Typen ohne interne Struktur preiszugeben.

  7. Strategy Pattern verwenden? Wenn Algorithmen austauschbar sein sollen, ohne den Client-Code zu ändern.

  8. MVC Pattern Komponenten? Model (Daten), View (Präsentation), Controller (Logik zur Verbindung von Model und View).

Wichtigste Quellen

  1. https://refactoring.guru/design-patterns
  2. https://de.wikipedia.org/wiki/Entwurfsmuster
  3. https://www.oracle.com/technical-resources/articles/j2ee/patterns
Zurück zum Blog
Share:

Ähnliche Beiträge