Version 0.1
Copyright © 2007 Lars Vogel
01.07.2009
| Revision History | ||
|---|---|---|
| Revision 0.1 | 01.07.2009 | Lars Vogel |
| Separated from http://www.vogella.de/articles/DesignPatterns/article.html | ||
Table of Contents
The Facade Pattern provides a unified interface to a set of interfaces in as subsystem. Facade defines a higher-level interface that makes the subsystem easier to use.
The Facade Pattern leaves the subsystem accessible to be used directly.
Assume you have a database access class with different methods to read the different tables. The client requires the complete result. You could use a facade pattern which hides the complex database access interface behind a few easy to understand and maintainable interface, e.g. load() and get().
The Facade pattern simplifies the access to an complex interface but allows still the complete access to the underlying subsystem.
The Facade Pattern allows to decouple your client implementation from the subsystem.
The difference between the Adapter Pattern and the Facade Pattern is their intent. The Adapter Pattern converts one or more interfaces to an expected subsystem interface The Facade Pattern simplifies one or more interfaces to a subsystem. So an implementation point of view both are similar only distinguishable by their intent.
Before posting questions, please see the vogella FAQ. If you have questions or find an error in this article please use the www.vogella.de Google Group. I have created a short list how to create good questions which might also help you.