200 likes | 306 Views
Content Design of Design Patterns Catalogue (Návrh obsahu katalógu návrhových vzorov). Autor: Ing . Ľubomír Majtás. Obsah prezentácie. Ciele práce Východiská Špecifikácia obsahu katalógu Zhodnotenie. Hlavné ciele.
E N D
Content Design of Design Patterns Catalogue(Návrh obsahu katalógu návrhových vzorov) Autor: Ing. Ľubomír Majtás
Obsah prezentácie • Ciele práce • Východiská • Špecifikácia obsahu katalógu • Zhodnotenie
Hlavné ciele • Vytvoriť katalóg obsahujúci relevantné znalosti z problematiky návrhových vzorov • Zamerať obsah katalógu na študijné účely aj na vývoj • Zabezpečiť širokú dostupnosť znalostí uložených v katalógu
Zameranie práce • 1. krok vývoja katalógu: Špecifikovať jeho obsahovú stránku • Zozbierať existujúce voľne dostupné znalosti z problematiky návrhových vzorov • Doplniť ich o vlastný pohľad • Vytvoriť ucelený produkt
Obsah katalógu • Vychádza z analýzy existujúcich voľne dostupných katalógov • Problémy • Slabá podpora vyhľadávania • Minimálna podpora pre začiatočníkov
Obsah katalógu Práca GoF : Design Patterns: Elements of Reusable Object-Oriented Software • 23 návrhových vzorov • Kategorizácia • Účel (Vytvárajúce, Štrukturálne, Správania) • Oblasť (Triedy, Objekty) • Opis vzťahov medzi vzormi
Navigácia k správnemu vzoru • Pomôcka pre začiatočníkov v oblasti vzorov • interakciou s používateľom katalóg identifikuje vzor, ktorý je pre používateľa najvhodnejší • Realizované pomocou rozhodovacieho stromu
Navigácia k správnemu vzoru • Are you concerned with interfaces, changing, simplifying or handlingdisparate type objects in the same way? • Do you have the right stuff but the wrong interface? (Used to fit classesinto patterns as well) • Adapter
Rozšírená kategorizácia vzorov • Pomáha pri vyhľadávaní správneho vzoru • Urýchľuje pochopenie podstaty vzoru • Kategorizácia podľa Magnusa Kardella • Applies to • Purpose • Scope • Time to apply
Charakteristiky vhodnosti pre rôzne fázy vývoja • Doplnenie o indikácie použitia pre fázy vývoja: • Analýza • Návrh • Refaktorovanie
Charakteristiky vhodnosti pre rôzne fázy vývoja • Indikácie použitia pre vzor Bridge • Analýza • There are a set of related objects using another set of objects. This second set represents an implementation of the first set. The first set uses the second set in varying ways. • Návrh • There is a set of derivations that use a common set of objects to get implemented. • Refaktorovanie • There is a class hierarchy that has redundancy in it. The redundancy is in the way these objects use another set of object. Also, if a new case is added to this hierarchy or to the classes being used, that will result in multiple classes being added.
Podpora hybridizácie vzorov • Hybridný vzor = kombinácia viacerých rôznych návrhových vzorov za špeciálnym účelom ich použitia • Pomocou definovaných formálnych pravidiel tvorby hybridných vzorov pre vzťahy „kombinuje“ a „používa“ • Pre pokročilých používateľov
Podpora hybridizácie vzorov • Vzory, s ktorými môže vzor Bridge tvoriť hybridný vzor • Používa: • Adapter a Façade • Kombinuje: • Builder, Command, Decorator, Factory, Method, Iterator, Mediator, Memento, Observer, Prototype, Proxy, Singleton, State,Strategy a Visitor
Vlastná kategorizácia vzťahov medzi vzormi • Rieši nedostatok katalógu GoF – chýbajúcu kategorizáciu vzťahov medzi vzormi • Urýchľuje vyhľadanie správneho použitia v rámci katalógu
Vlastná kategorizácia vzťahov medzi vzormi • Používa • Jeden vzor používa pri dosiahnutí svojho cieľu druhý (je zreteľné, ktorý používa a ktorý je používaný) • Abstract Factory – Factory Method • Kombinuje • Dva rovnocenné vzory sú spolu použité za účelom dosiahnutia spoločného cieľa • Visitor – Composite
Vlastná kategorizácia vzťahov medzi vzormi • Alternatíva • Vzory navzájom predstavujú alternatívy použitia • Factory Method – Prototype • Podobnosť • Vzory vyzerajú podobne (majú podobnú štruktúru), ale iný účel • Decorator – Proxy
Zhodnotenie • Definovanie obsahu nového katalógu • Vychádza z práce GoF, ktorú rozširuje • Určený pre výučbu aj vývoj softvéru • Navigácia k vzoru, Hybridizácia • Zjednodušuje vyhľadávanie • Rozšírená kategorizácia, Indikácie použitia
Práca do budúcnosti • Rozšírenie katalógu • Doplnenie ďalších znalostí o návrhových vzoroch • Návrhové vzory podľa iných autorov • Podpora generovania kódu • Doplnenie o znalosti na iných úrovniach abstrakcie, napríklad ADT, Architektonické vzory • Špecifikovanie (formalizovanie) možných operácií nad katalógom