160 likes | 324 Views
Structural design patterns Bridge. Miroslav Sajko. Modelová situácia. PlánovaÄ vlákien s rôznymi typmi plánovania na rôznych platformách. Modelová situácia. Nová platforma – prácne pridávanie pre každý typ plánovania. Bridge. „ Handle /Body“
E N D
StructuraldesignpatternsBridge Miroslav Sajko
Modelová situácia • Plánovač vlákien s rôznymi typmi plánovania na rôznych platformách
Modelová situácia • Nová platforma – prácne pridávanie pre každý typ plánovania
Bridge • „Handle/Body“ • Oddeľ abstrakciu od implementácií, aby sa obidve dali upravovať nezávisle • (Decouple an abstraction from its implementation so that the two can varyindependently)
Bridge v UML • Abstraction – definuje jadro návrhového vzoru, obsahuje odkazy na Implementory • RefinedAbstraction – rozširuje Abstraction, ukryto pred Implementorom • Implementor – definuje základné operácie • ConcreteImplementor– implementuje operácie Implementora
Dôsledky • Dve rôzne a nezávislé hierarchie • Vyhnutie sa prepojeniu medzi abstrakciou a implementáciou • Jednoduchá rozširovateľnosť abstrakcie aj implementácie • Skrytá implementácia pred klientom • Počas behu programu možemeprepínať medzi jednotlivými implementáciami
Implementácia • Iba 1 ConcreteImplementor– netreba abstraktný Implementor (špeciálny prípad) • Výber „správneho“ Implementora –podľa parametra z konštruktora alebo výber defaultného a potom prípadná zmena počas behu alebo využijeme AbstractFactory
Využitie v praxi • Určenie konkrétnej implementácie počas behu • Obmedzenie vzniku veľa tried, ktoré by bolo nutné definovať pri zviazaní rozhraní a výslednej implementácie • Chceme implementáciu zdielať medzi viacerými objektami
Zdroje • Design Patterns: Elements of Reusable Object-Oriented Software • http://en.wikipedia.org/wiki/Bridge_pattern • http://sourcemaking.com/design_patterns/bridge • http://javapapers.com/design-patterns/bridge-design-pattern/ • http://objekty.vse.cz/Objekty/Vzory-Bridge
Ďakujem za pozornosťOtázky? Kontakt: miroslav.sajko@student.upjs.sk