10.2.2021

Facade

Fassade

  • einer der GoF-Design-Pattern
  • ist die Middleware zwischen den Subsystemen und dem Client
  • eine Fassade übergibt wichtige Funktionalitäten der der Software an die jeweiligen Subsysteme, um den Umgang mit den verschiedenen Teilkomponenten eines Programms so einfach wie möglich zu gestalten

Vorteile:

  • der Code ist einfacher zu verwenden, zu verstehen und zu testen
  • sauberer Code, da der Client keine komplexe Schnittstelle verwendet und das System flexibler und wiederverwendbar ist

facade

class Lights {
  turnOn() {
    console.log('Lights on.');
  }

  turnOff() {
    console.log('Lights off.');
  }

  dim() {
    console.log('Lights dimmed.');
  }
}
/*************************************/
class Heating {
  turnOn() {
    console.log('Heating on.');
  }

  turnOff() {
    console.log('Heating off.');
  }
}
/*************************************/
class TV {
     turnOn() {
        console.log('TV on.');
    }

    turnOff() {
        console.log('TV off.');
    }
}
/*************************************/
class Facade {
  private lights: Lights;
  private heating: Heating;
  private tv: TV;

  constructor(lights: Lights, heating: Heating, tv: TV) {
    this.lights = lights;
    this.heating = heating;
    this.tv = tv;
  }

  public cozyEvening() {
    this.lights.dim();
    this.heating.turnOn();
    this.tv.turnOn();
  }
}
/*************************************/
const lights = new Lights();
const heating = new Heating();
const tv = new TV();

const facade = new Facade(lights, heating, tv);
facade.cozyEvening();

"Lights dimmed."

"Heating on."

"TV on."

Sven

Softwareentwickler

Zur Übersicht

Standort Hannover

newcubator GmbH
Bödekerstraße 22
30161 Hannover

Standort Dortmund

newcubator GmbH
Westenhellweg 85-89
44137 Dortmund