facade
play

Facade 1 What is a facade? From Merriam-Webster Online 1 : the - PowerPoint PPT Presentation

Facade 1 What is a facade? From Merriam-Webster Online 1 : the front of a building ; also : any face of a building given special architectural treatment <a museum's east facade > 2 : a false, superficial, or artificial


  1. Facade 1

  2. What is a “facade”?  From Merriam-Webster Online • 1 : the front of a building ; also : any face of a building given special architectural treatment <a museum's east facade > • 2 : a false, superficial, or artificial appearance or effect 5

  3. • Context:  Often, an application contains several complex packages.  A programmer working with such packages has to manipulate many different classes • Problem:  How do you simplify the view that programmers have of a complex package? • Forces:  It is hard for a programmer to understand and use an entire subsystem  If several different application classes call methods of the complex package, then any modifications made to the package will necessitate a complete review of all these classes. 6

  4. Facade Intent Provide a unified interface to a set of interfaces in a subsystem. Façade defines a higher-level interface that makes the subsystem easier to use. Category? (Structural) 7

  5. Clients often need detailed knowledge of a subsystem to obtain the needed services. Subsystem 8

  6. «Facade» «PackageClass1» «PackageClass2» «PackageClass3» * RegularFlight Airline +findFlight() +makeBooking() * Person +deleteBooking() 9

  7. A Façade can make it easier for clients to obtain the services that are needed. Facade Subsystem 10

  8. There are two characteristics that must be present to have a true Façade.  Unified interface • The clients know of one interface to call for services • Reduces coupling to the subsystem, but this is probably not the biggest benefit  Higher-level interface • Each service must provide more than a client can get from a simple call to a subsystem object • Single-call "pass-through" functions are not a higher-level interface facadeFunction() { subsystemObject->aFunction() } 11

  9. Façades tend to quickly become bloated classes. To eliminate this problem, there can be multiple types of Facades, each dealing with a logically related set of services FacadeA FacadeB FacadeC that the subsystem provides to clients. Subsystem 12

  10. There are some interesting questions about the Façade pattern.  Public or Private Subsystem (and implications) • Should a Façade be the only interface to a subsystem? • Should the brave (or foolish) be able to call directly into the subsystem?  What are the similarities between Façade and Mediator with respect to a subsystem? 13

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend