-
-
Save Kcko/640625aca4b9c3ce97e96fa81acedd1b to your computer and use it in GitHub Desktop.
Vytváří rodiny příbuzných objektů.
Odděluje tvorbu komplexních objektů od jejich reprezentace.
Deleguje vytváření objektů na potomky.
Vytváří objekty kopírováním prototypového objektu.
Zabezpečuje, že existuje jen jedna instance určité třídy.
##Adapter (Adaptér) Upraví rozhraní na rozhraní očekávané klientem.
Oddělí rozhraní třídy od její vlastní implementace, při čemž lze obě nezávisle na sobě změnit.
Spojuje více objektů do stromové struktury, kterou lze použít jako jeden objekt.
Rozšiřuje objekty za běhu programu o novou funkčnost.
Nabízí abstraktní rozhraní, které zjednodušuje používání určitého subsystému.
Umožňuje společné použití malých objektů.
Kontroluje přístup k objektu pomocí zástupce:
- přístup k objektu na jiném serveru (Remote Proxy),
- vytvoření objektu až v okamžiku potřeby (Virtual Proxy),
- vykonávání administrativních úloh (Secure Proxy).
Umožňuje odeslat požadavek řetězu objektů. Zřetězené objekty samy rozhodnou, kter ý z nich jej zpracuje.
Zapouzdřuje požadavek jako objekt.
Definuje gramatické pravidla a určuje způsob jejich interpretace.
Umožňuje sekvenční přístup k prvkům objektu bez znalosti jeho implementace.
Zajišťuje komunikaci mezi dvěma objekty, které nemusí být v přímé interakci a znát poskytované metody.
Zachytává a uchovává vnitřní stav objektu bez porušení jeho zapouzdření.
Umožňuje šíření událostí, které nastaly v jednom objektu, na všechny na něm závislé objekty.
Umožňuje změnit chování objektu při změně jeho vnitřního stavu.
Definuje rodinu algoritmů, které jsou navzájem zaměnitelné.
Definuje kroky určitého algoritmu a přenechává jejich implementaci svým potomkům.
Přidává do objektové struktury novou funkčnost a zapouzdří ji do třídy.