120 likes | 138 Views
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?.
E N D
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.