I-ASOS Prednáška 6

gof.png

Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software

Monografia zhŕňa najlepšie skúsenosti z objektovo orientovaného vývoja aplikácií a popisuje

23 návrhových vzorov rozdelených do troch kategórií:

  • Creational: Abstract factory, Builder, Factory method, Prototype, Singleton.

  • Structural: Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy.

  • Behavioral: Chain of responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template method, Visitor.

Popis všetkých vzorov má jednotnú formálnu štruktúru

  • Intent – stručná definicia – zámer vzoru

  • Motivation – motivácia, príklad…

  • Applicability – vysvetlenie use when…

  • Structure – UML diagramy, (class prip. ďalšie)

  • Participants – popis členov v UML

  • Collaboration – a ich vzájomných vzťahov

  • Consequences
  • Implementation
  • Sample code
  • Known uses
  • Related Patterns – vzťah k iným vzorom

Pokyny pre štúdium

Ku skúške si študenti v rámci samoštúdia naštudujú všetky horeuvedené návrhové vzory.

Pre každý návrhový vzor treba poznať predovšetkým:

  • stručnú definíciu vzoru (Intent)
  • motiváciu a príklady použitia (use when…)
  • formálnu definíciu štruktúry (UML) a popísať jednotlých členov (Participants) a ich vzťahy (collaboration)
  • vzťahy k iným návrhovým vzorom

Študijné materiály

Pozn. nie je nutné študovať horeuvedenú monografiu

Informačný zdroje na webe:

  • https://www.oodesign.com – hlavný odporúčaný študijný zdroj, neobsahuje však vzory Facade a State

  • wiki – obsahuje všetky vzory aj s ukážkami implementácií v rôznych jazykoch

  • https://sourcemaking.com/design_patterns – obsahuje ukážky implementácií v rôznych jazykoch a zaujímavé porovnania vzorov (Rules of thumb)