📖
Teorie
Klasická triáda GoF: tvořivé (Factory Method, Abstract Factory, Builder, Prototype, Singleton), strukturální (Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy) a behaviorální (Strategy, Observer, Command, State, Iterator, Mediator, Memento, Visitor, Template Method, Chain of Responsibility). Vzory pomáhají s opakovatelností řešení, snižují vazby a zvyšují znovupoužitelnost.
🎯
Tahák
- 1Strategy = zaměnitelné algoritmy
- 2Observer = publish/subscribe
- 3Factory = tvorba objektů bez new
- 4Decorator = přidávání funkcí za běhu
- 5Singleton = jediná instance (pozor na testovatelnost)
❓
Typické otázky u maturity
- 1Kdy použijete Strategy místo if-else?
- 2Rozdíl mezi Adapter a Facade?
🏷️
Klíčová slova
GoFStrategyObserverFactoryDecoratorSingleton
⚡
Praktická část
Zadání:
Navrhněte kalkulačku s volitelnými strategiemi výpočtu DPH (Strategy).
Kroky:
- 1Definuj interface TaxStrategy
- 2Implementuj CZ/EU strategie
- 3Injektuj do kalkulačky
Kód:
strategy.ts
export interface TaxStrategy { calc(base: number): number }
export class CzTax implements TaxStrategy { calc(b: number) { return b * 1.21 } }
export class ReducedTax implements TaxStrategy { calc(b: number) { return b * 1.10 } }
export class Calculator { constructor(private s: TaxStrategy) {} total(b:number){ return this.s.calc(b) } }