Treci la conținutul principal

Ce este

Șablonul Facade pune o singură ușă simplă în fața unui subsistem complicat. În spatele ușii, mai multe părți colaborează în ordinea potrivită; în fața ei, apelantul face un singur apel.

Subsistemul rămâne pe deplin disponibil pentru cei care au nevoie de detalii — facade-ul este o comoditate, nu un zid.


Exemplu: un singur apel pornește ziua

Încălzitor, lumini, espressor — trei părți, fiecare cu metoda ei și cu ordinea ei potrivită. startDay() ascunde coregrafia în spatele unui singur apel.

O singură ușă simplă

Apelantul scrie o singură linie, new House().startDay(); facade-ul știe ordinea (întâi căldura, la final cafeaua). Dacă rutina se schimbă, se schimbă doar facade-ul.

Prompt
Scrie un program TypeScript care arată șablonul Facade: clasele Heater, Lights și CoffeeMachine, fiecare afișând acțiunea sa, și o clasă-fațadă House a cărei metodă startDay le execută în ordinea potrivită. Pornește ziua cu un singur apel.
Ieșire: program TypeScript și rezultatul capturat

Când să îl folosești

Folosește-l când apelanții repetă mereu același dans în mai mulți pași cu un subsistem sau când vrei să expui o suprafață mică și stabilă peste una dezordonată ori în schimbare.

Renunță la el când „subsistemul” este o singură clasă cu trei metode. Un facade peste ceva deja simplu nu adaugă decât distanță.


Avantaje și dezavantaje

Avantaje: apelanții primesc un singur apel simplu; ordinea corectă există într-un singur loc; subsistemul se poate schimba în spatele unei fațade stabile.

Dezavantaje: facade-urile tind să crească până devin clase care fac totul; un facade care ascunde prea mult îi împinge pe oameni să îl ocolească.