Treci la conținutul principal

Ce este

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

Subsistemul rămâne complet disponibil pentru cei care au nevoie de detalii — fațada este o comoditate, nu un zid.


Exemplu: un singur apel începe ziua

Încălzire, lumini, espressor — trei părți, fiecare cu propria interfață și cu ordinea sa corectă. startDay() ascunde coregrafia în spatele unui singur apel.

O singură ușă simplă

Apelantul scrie o singură linie; fațada cunoaște ordinea (mai întâi încălzirea, la final cafeaua). Dacă rutina se schimbă, se schimbă doar fațada.

Prompt
Scrie un script PHP cu șablonul Facade: clasele Heater, Lights și CoffeeMachine, fiecare afișând acțiunea sa, plus o fațadă House a cărei metodă startDay le rulează în ordinea corectă. Începe ziua cu un singur apel.
Ieșire: script PHP

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 încurcată sau schimbătoare.

Renunță la el când „subsistemul” este o singură clasă cu trei metode. O fațadă peste ceva deja simplu adaugă doar distanță.


Avantaje și dezavantaje

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

Dezavantaje: fațadele tind să crească în clase care fac totul; o fațadă care ascunde prea mult îi împinge pe oameni să o ocolească.