Facade (fasáda)

Návrhové vzory Facade (fasáda)

Návrhový vzor Facade (fasáda) se používá k vytvoření jednotného rozhraní pro celou logickou skupinu tříd, které se tak sdruží do subsystému.

Motivace

Mnohdy v naší aplikaci pracujeme s několika rozhraními různých tříd. To může být často nepřehledné, zejména pokud jsou rozhraní tříd složitá. Pokud spolu třídy logicky souvisí, můžeme je sdružit do subsystému pomocí fasády (Facade). Získáme tak jednotné rozhraní pro funkcionalitu, kterou nám subsystém poskytuje.

Vzor

Fasáda (Facade) je poměrně jednoduchý vzor, který se skládá z jedné třídy, která fasádu tvoří. Ta je napojena na další třídy, se kterými pracuje. Zvenku je však vidět jen fasáda (od toho název), a ta zastupuje rozhraní pro celý subsystém. Celá složitá struktura tříd je v pozadí.

Návrhový vzor Facade/fasáda

Sníží se tím počet tříd, se kterými komunikujeme. Subsystém se lépe používá i testuje. Jedná se tedy opět o prostředníka a je tu určitá podobnost se vzorem Adapter (Wrapper) . My ovšem obalujeme rovnou několik tříd do jednoho logického subsystému.

Příkladem by mohla být fasáda pro práci s PC na úrovni hardwaru. Sdružovala by třídu co umožňuje počítač uspat, restartovat nebo vypnout. Dále třídu co by upravovala jas monitoru a další, co by četla teploty procesoru a disku. Fasáda by zastřešila všechny metody do jednoho rozhraní. Mohla by obsahovat i jen vybrané metody pro náš účel.

Výhodou vzoru je také vyřešení závislostí jednotlivých komponent v subsystému. Pokud mezi nimi předáváme nějakou instanci, řeší se to uvnitř fasády.


 

  Aktivity (1)

Článek pro vás napsal David Čápka
Avatar
Autor pracuje jako softwarový architekt a pedagog na projektu ITnetwork.cz (a jeho zahraničních verzích). Velmi si váží svobody podnikání v naší zemi a věří, že když se člověk neštítí práce, tak dokáže úplně cokoli.
Unicorn College Autor se informační technologie naučil na Unicorn College - prestižní soukromé vysoké škole IT a ekonomie.

Jak se ti líbí článek?
Celkem (6 hlasů) :
4.54.54.54.54.5


 


Miniatura
Předchozí článek
Adapter (wrapper)
Miniatura
Všechny články v sekci
Návrhové vzory
Miniatura
Následující článek
Observer (pozorovatel)

 

 

Komentáře

Avatar
info
Člen
Avatar
info:

Ako je to z rýchlosťou pri tomto návrhovom vzore? PHP modul(parsing engine) načíta celý subsystém , teda všetky triedy , alebo len tie triedy ktorých metódy a atribúty sú volané.

 
Odpovědět 15. února 11:09
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 1 zpráv z 1.