NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.

Lekce 6 - Facade (fasáda)

V minulé lekci, Adapter (wrapper), jsme si ukázali návrhový vzor Adapter (nebo také Wrapper).

V tutoriálu Návrhové vzory GoF si představíme návrhový vzor Facade (fasáda). Vzor 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 - Návrhové vzory GoF

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. Máme zde také určitou 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.

V další lekci, Proxy (zástupce), si ukážeme návrhový vzor Proxy (nebo také zástupce), který se používá pro řízení přístupu uživatelů k objektu, popřípadě k rozšíření nebo k zefektivnění práce s tímto objektem.


 

Předchozí článek
Adapter (wrapper)
Všechny články v sekci
Návrhové vzory GoF
Přeskočit článek
(nedoporučujeme)
Proxy (zástupce)
Článek pro vás napsal David Hartinger
Avatar
Uživatelské hodnocení:
65 hlasů
David je zakladatelem ITnetwork a programování se profesionálně věnuje 15 let. Má rád Nirvanu, nemovitosti a svobodu podnikání.
Unicorn university David se informační technologie naučil na Unicorn University - prestižní soukromé vysoké škole IT a ekonomie.
Aktivity