Návrhové vzory

Katalog návrhových vzorů rozdělují pánové Gamma, Helm, Johnson a Vlissides na následující části.

Účel
Tvořivý Strukturální Chování
Oblast Třída Tovární metoda Adaptér (třída) Interpret
Šablonová metoda
Objekt Abstraktní továrna Adaptér (objekt) Iterátor
Jedináček Dekorátor Návštěvník
Prototyp Fasáda Obnovitel
Stavitel Most Pozorovatel
Muší váha Prostředník
Skladba Příkaz
Zástupce Řetěz odpovědnosti
Stav
Strategie

Abstraktní továrna (Abstract Factory)

Účel:

Poskytuje rozhraní pro vytváření řad příbuzných nebo závislých objektů, aniž by se musely specifikovat konkrétní třídy.

Jiné názvy:

Kit (souprava)

Použití:

Vzor Abstraktní továrna lze použít v  následujících případech:

Struktura:

Abstract Factory

Součásti:

AbstractFactory
deklaruje rozhraní pro operace, které vytvářejí abstraktní produktové objekty
ConcreteFactory
implementuje operace k vytváření konkrétních produktových objektů
AbstractProduct
deklaruje rozhraní pro typ produktového objektu
ConcreteProduct
definuje produktový objekt, který se má vytvořit odpovídajíci konkrétní továrnou
implementuje rozhraní AbstractProduct
Client
používá pouze rozhraní deklarovaná třídami AbstractFactory a AbstractProduct

Pozorovatel (observer)

Použití

Vzor Pozorovatel lze použít v následujících situacích:

Struktura

Součásti

Subject
Zná své pozorovatele. Subject může pozorovat libovolný počet objektů Observer.

Poskytuje rozhraní pro připojování a odpojování objektů Observer.
Observer
Definuje aktualizační rozhraní objektů, jež mají být upozorněny na změny subjektu.
ConcreteSubject
Ukládá stav vlivu do objektů ConcreteObserver.
Posílá upozornění svým pozorovatelům v případě změny svého stavu.
ConcreteObserver
Udržuje odkaz na objekt ConcreteSubject.
Ukládá stav, který má zůstat konzistentní se stavem objektu.
Implementuje aktualizační rozhraní objektu Observer, které udržuje jeho stav konzistentní se stavem subjektu