Designpatterns

Facade Pattern

Das Facade-Muster stellt eine einheitliche Schnittstelle für ein komplexes Subsystem bereit, um dessen Nutzung zu vereinfachen.

Was ist das Facade-Muster?

Das Facade-Muster (Fassaden-Muster) ist ein Entwurfsmuster, das dazu dient, ein komplexes System hinter einer einfachen Schnittstelle zu verstecken. Es bietet einen zentralen Einstiegspunkt, über den man auf mehrere Klassen oder Funktionen eines Subsystems zugreifen kann.

Die Fassade reduziert die Abhängigkeit vom komplexen Innenleben eines Systems und sorgt so für bessere Übersicht und einfachere Nutzung.

Beispiel aus dem Alltag

Stell dir ein Smart Home System vor:

  • Es gibt Lichtsteuerung, Heizung, Sicherheitssystem, Musiksteuerung usw.
  • Statt jede Komponente einzeln zu bedienen, gibt es eine zentrale App → das ist die Fassade.

Mit einem Klick kannst du z. B. den „Abwesend“-Modus aktivieren:

  • Licht aus
  • Heizung runter
  • Alarmanlage an
    → Alles über eine einfache Schnittstelle, obwohl intern viele Dinge passieren.

Aufbau in Java (vereinfacht)

// Subsystem-Klassen (könnten auch viel komplexer sein)
class Licht {
    void ausschalten() { System.out.println("Licht aus"); }
}

class Heizung {
    void energiesparen() { System.out.println("Heizung im Energiesparmodus"); }
}

class Alarmanlage {
    void aktivieren() { System.out.println("Alarmanlage an"); }
}

Die Fassade:

// Die zentrale Steuerung – versteckt die Komplexität des Subsystems
class SmartHomeFassade {
    private Licht licht = new Licht();
    private Heizung heizung = new Heizung();
    private Alarmanlage alarm = new Alarmanlage();

    void aktiviereAbwesenheitsmodus() {
        licht.ausschalten();
        heizung.energiesparen();
        alarm.aktivieren();
    }
}

Beispielhafte Nutzung:

class Main {
    public static void main(String[] args) {
        SmartHomeFassade smartHome = new SmartHomeFassade();

        // Nur ein einfacher Aufruf nötig:
        smartHome.aktiviereAbwesenheitsmodus();
        // Ausgabe:
        // Licht aus
        // Heizung im Energiesparmodus
        // Alarmanlage an
    }
}

Vorteile des Facade-Musters:

VorteilBedeutung
Vereinfachte SchnittstelleBenutzer müssen das komplexe System nicht im Detail kennen
Lose KopplungAußenwelt kennt nur die Fassade, nicht das Innenleben
Bessere WartbarkeitÄnderungen am Subsystem müssen nicht überall angepasst werden
Klare StrukturKomplexität wird gekapselt, Code bleibt übersichtlich
Die Fassade ist wie ein „Assistent“, der im Hintergrund alles koordiniert.
→ Ideal, um Komplexität zu verstecken und die Nutzung zu erleichtern.