1 / 9

The Façade Pattern

The Façade Pattern. Watching a Movie. Interacting with the following classes: Receiver/Amplifier TV/Monitor DVD. Use multiple interfaces (remotes) to Turn on Receiver/amplifier Turn on TV/Monitor Turnn on DVD player Set the Receiver input to DVD Put the Monitor in HDMI input mode

kendis
Download Presentation

The Façade Pattern

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. The Façade Pattern SE-2811 Dr. Mark L. Hornick

  2. Watching a Movie... • Interacting with the following classes: • Receiver/Amplifier • TV/Monitor • DVD Use multiple interfaces (remotes) to Turn on Receiver/amplifier Turn on TV/Monitor Turnn on DVD player Set the Receiver input to DVD Put the Monitor in HDMI input mode Set the Receiver volume to medium Set Receiver to DTS Surround Start the DVD player.

  3. To decrease the complexity.. We can create a new class TheaterFacade (e.g. a universal remote) which exposes a few methods such as watchMovie(). • The façade treats the various components as a sub system and calls on them to implement the watchMovie method. • So to watch a movie, we just call one method, watchMovie and it communicates with the Monitor, DVD, and Receiver for us. • The façade still leaves the subsystem accessible to be used directly. If you need the advanced functionality of the subsystem classes, they are available for use.

  4. The Problem Complex system • Consisting of multiple subsystems • Each with its own interface, each with many methods Difficult for clients (blue) to deal with

  5. Facade Solution Solution • Centralize subsystem interface • Simplify/reduce number of centralized methods • Façade presents new unified “face” to clients Facade

  6. Removing the burden from beginning Java developers with a Façade (WinPlotter) SE-2811 Dr. Mark L. Hornick

  7. Generic Pattern SE-2811 Dr. Mark L. Hornick

  8. Facade Consequences Shields clients from subsystem components • Make subsystem easier to use Reduces coupling from client to subsystem classes • Allow internal classes to change freely • Permit “layering” of system function • Level of client-subsystem coupling • Make Facade an abstract class • Different concrete subclasses for different implementations of the subsystem. • Configure the façade object with different subsystem objects.

  9. Facade Applications Interface to existing library • Unify or “clean up” complex interface Design layered system • Various service levels • Façade abstracts interface of each level Provide abstract interfaces • To alternative implementations

More Related