Document not found! Please try again

Design Patterns, Elements of Reusable Object-Oriented Software

15 downloads 44 Views 1MB Size Report
Mediator 2/2 director->WidgedChanged(this). DialogDirector. ShowDialog(). CraeteWidgets(). WidgedChanged( : Widged). Widget. Changed(). Mediator.
Object Interaction Adaptation and Extension Buschmann et al.: POSA 4, Wiley, 2007

Observer

Object Interaction

Mediator 1/2

Object Interaction

Mediator 2/2 Widget DialogDirector

Changed()

ShowDialog() CraeteWidgets() WidgedChanged( : Widged)

ListBox GetSelection()

EntryField

Button

SetText()

FontDialogDirector CreateWidgets() WidgedChanged( : Widged)

director->WidgedChanged(this)

Mediator

GAMMA et al.: Design Patterns, Elements of Reusable Object-Oriented Software, Addison Wessley Longmann, 1998

Command 1/2

Object Interaction

Command 2/2 Client

-End2 -End1

Application

-End3 -End4 Menu

-End5 -End6

*

MenuItem

1 * +Add(inout Document)

Invoker

1 * +Add(in MenuItem)

Command 1

*

+Clicked()

+Execute()

* * Document

OpenCommand PasteCommand

ConcreteCommand

MacroCommand

+Execute() +AskUser()

+Execute()

+Execute()

+Execute()

+Open() +Close() +Cut() +Copy() +Paste()

Receiver

for all c in command c->Execute(); Command -> Execute () document->Paste();

name = AskUser(); doc = new Document(name); application->Add(doc); doc->Open();

receiver->Action();

GAMMA et al.: Design Patterns, Elements of Reusable Object-Oriented Software, Addison Wessley Longmann, 1998

1

Memento

Object Interaction

Data Transfer Object

Object Interaction

Message

Object Interaction

Bridge 1/2

Several different implementation (platform specific, runtime decision,…). Interface abstraction refinement. Separate implementor hierarchy, providing various implementation. Adaptation and Extension

Bridge 2/2

GAMMA et al.: Design Patterns, Elements of Reusable Object-Oriented Software, Addison Wessley Longmann, 1998

Object Adapter 1/2

Adaptation and Extension

Object Adapter 2/2

GAMMA et al.: Design Patterns, Elements of Reusable Object-Oriented Software, Addison Wessley Longmann, 1998

Chain of Responsibility

Adaptation and Extension

Interpreter 1/3

Adaptation and Extension

Interpreter 1/3

GAMMA et al.: Design Patterns, Elements of Reusable Object-Oriented Software, Addison Wessley Longmann, 1998

Interpreter 1/3

GAMMA et al.: Design Patterns, Elements of Reusable Object-Oriented Software, Addison Wessley Longmann, 1998

Interceptor

Registering out of-band service extensions via predefined callback interfaces. Trigger when specific events occur.

Adaptation and Extension

Visitor 1/4

Adaptation and Extension

Visitor 2/4

Visitor 3/4

Visitor 4/4

Decorator 1/3

Adaptation and Extension

Decorator 2/3

window->SetContents( new BorderDecorator( new ScrollDecorator(textView), 1 )

Decorator 3/3

Execute-Around Object

Constructor and destructor to perform pre- and post-sequence actions.

Adaptation and Extension

Template Method

Adaptation and Extension

Strategy

Adaptation and Extension

Null Object

Napojenie DB. Priehradky platov zamestnancov.

Adaptation and Extension

Wrapper Facade

Avoid accessing low-level function-based APIs directly. Façade – interface partitioning,

Adaptation and Extension

Suggest Documents