Mediator Object Behavioral Cam Quach Joel Derstine Intent

  • Slides: 10
Download presentation
Mediator: Object Behavioral Cam Quach Joel Derstine

Mediator: Object Behavioral Cam Quach Joel Derstine

Intent • Mediator is an object to coordinate state changes between other objects •

Intent • Mediator is an object to coordinate state changes between other objects • Mediator promotes loose coupling by preventing objects from referring to each other explicitly • Mediator allows designers to vary their interactions independently

Problem • Goal in OO design is to distribute behavior among objects • Distribution

Problem • Goal in OO design is to distribute behavior among objects • Distribution will increase reusability # of objects reusability interconnections reusability

Solutions Mediator Concrete. Mediator mediator Colleague Concrete. Colleague 1 Concrete. Colleague 2 Structure •

Solutions Mediator Concrete. Mediator mediator Colleague Concrete. Colleague 1 Concrete. Colleague 2 Structure • Mediator provides an interface for communicating with Colleague objects • Concrete. Mediator implements a cooperative behavior by coordinating the Colleague objects • Colleagues send and receive requests from a Mediator object

A Conceptual Example: The Problem • Multiple aircraft in the air space of an

A Conceptual Example: The Problem • Multiple aircraft in the air space of an airport need to communicate with each other about changes in (some of) their properties (speed, altitude, direction). • Where do the complexities reside if they tried to do this by communicating with each other directly? Duell, “Non-software examples of software design patterns”, Object Magazine, July 1997

A Conceptual Example: The Problem Some complexities? • Who do they need to contact

A Conceptual Example: The Problem Some complexities? • Who do they need to contact • When (or how often) do they need to contact • What do they need to tell them I’m landing! ? Not yet! I’m still taking off!! Duell, “Non-software examples of software design patterns”, Object Magazine, July 1997

A Conceptual Example: A Solution A Control Tower (the “mediator”)! Manages the complexity of

A Conceptual Example: A Solution A Control Tower (the “mediator”)! Manages the complexity of communications: • Who to contact (observer object? ) • When to contact • What to say ? Duell, “Non-software examples of software design patterns”, Object Magazine, July 1997

A Technical Example: The Problem Some issues/questions: • • • How should the widgets

A Technical Example: The Problem Some issues/questions: • • • How should the widgets on this dialog box communicate? What are the dependencies? Each widget knows how to do its job. But should it know how it fits into the larger picture? GOF, “Design Patterns”, 1995

A Technical Example: A Solution Create a Font. Dialog. Director Mediator! • Knows the

A Technical Example: A Solution Create a Font. Dialog. Director Mediator! • Knows the widgets in the dialog box • Serves as the intermediary (widgets only know about the mediator). • Coordinates their interaction Dialog. Director director Show. Dialog() Create. Widgets() Widget. Changed(Widget) Changed() Font. Dialog. Director Create. Widgets() Widget. Changed(Widget) GOF, “Design Patterns”, 1995 Widget list List. Box Get. Selection() field Entry. Field Set. Text()

Consequences Mediator • Limits subclassing • Decouples colleagues • Simplifies object protocols • Abstracts

Consequences Mediator • Limits subclassing • Decouples colleagues • Simplifies object protocols • Abstracts how objects cooperate • Centralizes control