Wzorzec projektowy Fasada upraszcza skomplikowane i złożone systemy. Można zastosować go do stworzenia API (interfejsu programistycznego aplikacji), który udostępni klientowi uproszczoną specyfikację systemu z jego popularnymi funkcjonalnościami, konkretnymi zadaniami, itd. Wiele portali i serwisów internetowych udostępnia swoje API, np: YouTube Data API, Google Maps API.

DIAGRAM WZORCA FASADA

  • Element1, Element2 Element5 – to klasy reprezentujące jakiś złożony system,
  • Fasada – klasa, która implementuje elementy złożonego systemu, może je również przekształcać i/lub rozszerzać dostosowując do nowych potrzeb,
  • Klient – używa interfejsu fasady.

PRZYKŁAD IMPLEMENTACJI

Klasy: Element1, Element2, Element3 są składowymi jakiegoś systemu. Kod tych klas nie musi być znany klientowi. Możemy założyć, że system zbudowany jest z setek klas, a nas interesują funkcjonalności tylko z tych trzech:

Fasada poprzez konstruktor pobiera instancje obiektów (elementy złożonego systemu). Konkretne funkcje (A, B i C) będą udostępnione klientowi w postaci getA, getB i getC:

Klient używa gotowego API:


Przykład na GitHub →