Maturitarozbory témat
5

Návrhové vzory

📚 PRG
Příprava: 15 min
Zkouška: 15 min
📖

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:

  1. 1Definuj interface TaxStrategy
  2. 2Implementuj CZ/EU strategie
  3. 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) } }