Mediator
E N D
Presentation Transcript
Mediator A Behavioral Design Pattern for the New Millennium Cory Nugent
Designing for OOP • Goals of Object Oriented Design • Distribute behavior among different objects. • Encourage code reuse • Facilitate communication between objects
What’s the Problem? • Communication between objects becomes too complicated. • Changing system behavior becomes too difficult. • No central access points are available.
DAS MEDIATØR! • A class that controls interactions of a group of other objects. • Promotes loose coupling (Objects don’t explicitly reference each other). • Objects need only know about their mediator. • Provides a centralized behavior management point.
The Good • Changing system behavior means sub-classing the mediator. • Mediator and Colleague classes are independent of each other. • Mediator-Colleague relationship is one to many; Colleague-Colleague relationship is many to many. • Object interaction becomes easy to understand.
The Bad • All object interactions are bundled into the mediator. • The mediator class can be complex and hard to maintain.
How it all works Diagram courtesy of Gopalan Suresh Raj
The Mediator • Mediator • Defines an interface for communicating with colleague classes. • Concrete Mediator • Coordinates colleague objects
How it all works Diagram courtesy of Gopalan Suresh Raj
The Colleagues • Colleague • Defines an interface for communicating with mediator class. • Concrete Colleagues • Each colleague knows its mediator • Each colleague communicates with its mediator when it would otherwise communicate with its colleague.
How it all works Diagram courtesy of Gopalan Suresh Raj
There is no more presentation • Thank you, come again.