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

Zur Übersicht
Sven Röttering

Mehr vom Devsquad...

Sven Röttering

State Pattern

Adrian Görisch

Quiz: Google like a pro

Hallo, ich bin Jörg Herbst!

Ich bin der CEO von newcubator und freue mich über jede Nachricht!

* Pflichtfeld