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 corectă; în fața ei, apelantul face un singur apel.

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


Exemplu: un singur apel începe ziua

Încălzitor, lumini, aparat de cafea — trei părți, fiecare cu propriul API și cu ordinea sa corectă. StartDay() ascunde întreaga coregrafie în spatele unui singur apel.

O singură ușă simplă

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

Prompt
Scrie un program Go cu șablonul Facade: tipurile Heater, Lights și CoffeeMachine, fiecare afișând acțiunea sa, și o fațadă House a cărei metodă StartDay le rulează în ordinea corectă. Începe ziua printr-un singur apel.
Ieșire: program Go și rezultatul capturat

Când să îl folosești

Folosește-l atunci când apelanții repetă mereu aceiași pași cu un subsistem sau când vrei să expui o suprafață mică și stabilă peste una dezordonată ori care se schimbă des.

Renunță la el atunci când „subsistemul” este un singur tip 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ă într-un singur loc; subsistemul se poate schimba în spatele unei fațade stabile.

Dezavantaje: fațadele tind să crească până devin tipuri care fac de toate; o fațadă care ascunde prea mult îi împinge pe oameni să o ocolească.