## Abstract Factory (Abstraktní továrna) 
Vytváří rodiny příbuzných objektů.

## Builder (Stavitel) 
Odděluje tvorbu komplexních objektů od jejich
reprezentace.

## Factory Method (Tovární metoda) 
Deleguje vytváření objektů na potomky.

## Prototype (Prototyp) 
Vytváří objekty kopírováním prototypového objektu.

## Singleton (Jedináček) 
Zabezpečuje, že existuje jen jedna instance určité
třídy.

##Adapter (Adaptér) 
Upraví rozhraní na rozhraní očekávané klientem.

## Bridge (Most) 
Oddělí rozhraní třídy od její vlastní implementace,
při čemž lze obě nezávisle na sobě změnit.

## Composite (Strom) 
Spojuje více objektů do stromové struktury, kterou
lze použít jako jeden objekt.

## Decorator (Dekorátor) 
Rozšiřuje objekty za běhu programu o novou funkčnost.

## Facade (Fasáda) 
Nabízí abstraktní rozhraní, které zjednodušuje používání
určitého subsystému.

## Flyweight (Muší váha) 
Umožňuje společné použití malých objektů.

## Proxy (Zástupce) 
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).

## Chain of Responsibility (Zřetězení zodpovědnosti)
Umožňuje odeslat požadavek řetězu objektů. Zřetězené
objekty samy rozhodnou, kter ý z nich jej
zpracuje.

## Command (Příkaz) 
Zapouzdřuje požadavek jako objekt.

## Interpreter (Interpret) 
Definuje gramatické pravidla a určuje způsob jejich
interpretace.

## Iterator (Iterátor) 
Umožňuje sekvenční přístup k prvkům objektu bez
znalosti jeho implementace.

## Mediator (Prostředník) 
Zajišťuje komunikaci mezi dvěma objekty, které
nemusí být v přímé interakci a znát poskytované
metody.

## Memento (Memento) 
Zachytává a uchovává vnitřní stav objektu bez
porušení jeho zapouzdření.

## Observer (Pozorovatel) 
Umožňuje šíření událostí, které nastaly v jednom
objektu, na všechny na něm závislé objekty.

## State (Stav) 
Umožňuje změnit chování objektu při změně jeho
vnitřního stavu.

## Strategy (Strategie) 
Definuje rodinu algoritmů, které jsou navzájem
zaměnitelné.

## Template method (Šablonová metoda)
Definuje kroky určitého algoritmu a přenechává
jejich implementaci svým potomkům.

## Visitor (Návštěvník) 
Přidává do objektové struktury novou funkčnost
a zapouzdří ji do třídy.