2007 pearson education, inc. publishing as pearson addison-wesley 1 broker design patterns: faade...

20
1 © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Broker Design Broker Design Patterns: Façade and Patterns: Façade and Mediator Mediator

Upload: marilyn-foster

Post on 18-Jan-2018

217 views

Category:

Documents


0 download

DESCRIPTION

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 3 Topics  Broker patterns  The Façade pattern  The Mediator pattern

TRANSCRIPT

Page 1: 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Broker Design Patterns: Faade and Mediator

1© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Broker Design Broker Design Patterns: Façade and Patterns: Façade and MediatorMediator

Page 2: 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Broker Design Patterns: Faade and Mediator

2© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

ObjectivesObjectives

To present the structure, behavior, and characteristics of broker patterns

To present the Façade and Mediator design patterns

Page 3: 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Broker Design Patterns: Faade and Mediator

3© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

TopicsTopics

Broker patterns The Façade pattern The Mediator pattern

Page 4: 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Broker Design Patterns: Faade and Mediator

4© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Broker Pattern Broker Pattern StructureStructure

SupplierBrokerClient

The Client must access the Broker and the Broker must access the Supplier

Most Broker patterns elaborate this basic structure

Page 5: 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Broker Design Patterns: Faade and Mediator

5© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Broker Pattern Broker Pattern BehaviorBehavior

:Broker:Client :Supplier

requestService()obtainService()

sd BrokerBehavior

Page 6: 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Broker Design Patterns: Faade and Mediator

6© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Broker Pattern Broker Pattern AdvantagesAdvantages

Simplify the Supplier—A Broker can augment the Supplier’s services.

Decompose the Supplier—A complex Supplier can offload some of its responsibilities to a Broker.

Facilitate Client/Supplier Interaction—A Broker may present a different interface, handle interaction details, etc.

Page 7: 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Broker Design Patterns: Faade and Mediator

7© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Broker Example: Broker Example: Iterator FormIterator Form

«supplier»ConcreteCollection

«broker»ConcreteIterator

* 1

iterator() : Iterator

«interface»Collection

«interface»Iterator

Client reset()isDone() : booleangetCurrent() : Objectnext()

Page 8: 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Broker Design Patterns: Faade and Mediator

8© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Broker Example: Iterator Broker Example: Iterator BehaviorBehavior

i:ConcreteIterator:Client :ConcreteCollection

reset()

e=getCurrent()

next()

done=isDone()

done=isDone()

checkStatus()

fetchValue()

checkStatus()

loop [!done]

sd IteratorAsBroker

Page 9: 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Broker Design Patterns: Faade and Mediator

9© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

The Façade PatternThe Façade Pattern

The Façade pattern eases interaction between a client and a sub-system of suppliers by providing a simpler interface to the sub-system.

The broker class is a façade that provides simplified sub-system services to clients.

Analogy: a travel agent

Page 10: 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Broker Design Patterns: Faade and Mediator

10© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Façade Pattern Façade Pattern StructureStructure

Façade

Complex Subsystem

Client

Page 11: 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Broker Design Patterns: Faade and Mediator

11© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Façade ExamplesFaçade Examples

Interface to a compiler Interface to a user interface

(from the application side) Interface to a memory

management system

Page 12: 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Broker Design Patterns: Faade and Mediator

12© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

When to Use a FaçadeWhen to Use a Façade Use the Façade pattern when there is

a need to provide a simplified interface to a complex sub-system.

Façades can also help decouple systems.• If the façade mediates all interaction with

a client, then the sub-system can be changed without affecting the client.

A façade may work like an adapter by providing a new interface to a sub-system (adapters are discussed later).

Page 13: 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Broker Design Patterns: Faade and Mediator

13© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

The Mediator PatternThe Mediator Pattern

The Mediator pattern reduces coupling and simplifies code when several objects must negotiate a complex interaction.

Classes interact only with a mediator class rather than with each other.

Classes are coupled only to the mediator where interaction control code resides.

Mediator is like a multi-way Façade pattern.

Analogy: a meeting scheduler

Page 14: 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Broker Design Patterns: Faade and Mediator

14© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Using a MediatorUsing a Mediator

collaboratorA

mediator

collaboratorD

collaboratorC

collaboratorB1: op1() 2.1: op2()

1.3: op3()

3: op4()

2: op2()

collaboratorA

collaboratorD

collaboratorC

collaboratorB

1.2: op2()1.5: op2()1.1: op1()

1.4: op4()

1: op()

UnmediatedCollaboration

MediatedCollaboration

2.2: op3()

Page 15: 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Broker Design Patterns: Faade and Mediator

15© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Mediator Pattern Mediator Pattern StructureStructure

Mediator Collaborator

ColleagueB

ColleagueA

ColleagueC

Page 16: 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Broker Design Patterns: Faade and Mediator

16© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Mediator as a BrokerMediator as a Broker

«broker»Mediator

Collaborator

«supplier»ColleagueB

«client»ColleagueA

«supplier»ColleagueC

Page 17: 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Broker Design Patterns: Faade and Mediator

17© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Mediator BehaviorMediator Behavior

self:Mediator :ColleagueA

consult()

:ColleagueB :ColleagueC

consult()

consult()

notify()

sd requestService()

Page 18: 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Broker Design Patterns: Faade and Mediator

18© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

When to Use a When to Use a MediatorMediator

Use the Mediator pattern when a complex interaction between collaborators must be encapsulated to

• Decouple collaborators,• Centralize control of an interaction, and• Simplify the collaborators.

Using a mediator may compromise performance.

Page 19: 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Broker Design Patterns: Faade and Mediator

19© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Mediators, Façades, and Mediators, Façades, and Control StylesControl Styles

The Façade and Mediator patterns provide means to make control more centralized.

The Façade and Mediator patterns should be used to move from a dispersed to a delegated style, but not from a delegated to a centralized style.

Page 20: 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Broker Design Patterns: Faade and Mediator

20© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

SummarySummary Broker patterns use a Broker class to

facilitate the interaction between a Client and a Supplier.

The Façade pattern uses a broker (the façade) to provide a simplified interface to a complex sub-system.

The Mediator pattern uses a broker to encapsulate and control a complex interaction among several suppliers.