| facade | has definition A pattern in which you create a class that provides a simplified interface to a package |   | 
has context html>- Often, an application contains several complex packages. 
 - A programmer working with such packages has to manipulate many different classes 
 
  |   | 
has forces html>-  It is hard for a programmer to understand and use an entire subsystem - in particular, to determine which methods are public. 
 - 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. 
 
  |   | 
| has problem How do you simplify the view that programmers have of a complex package? |   | 
| has references one of the Gang of Four patterns. |   | 
has solution - Create a special class, called a «Facade», which will simplify the use of the package. 
 - The «Facade» will contain a simplified set of public methods such that most other subsystems do not need to access the other classes in the package. 
 - The net result is that the package as a whole is easier to use and has a reduced number of dependencies with other packages. 
 - Any change made to the package should only necessitate a redesign of the «Facade»class. 
 
  |   | 
| is a subtopic of 6.9 - The Facade Pattern |   | 
| is an instance of design pattern |   | 
| design pattern | has antipatterns zero or more antipatterns - solutions that are inferior or do not work in this context with the reason for their rejection |   | 
| has name |   | 
| has related patterns zero or more related design patterns |   | 
| should be illustrated using a simple diagram |   | 
| should be written using a narrative writing style |   | 
| pattern | should be as general as possible |   | 
| should be described in an easy-to-understand form so that people can determine when and how to use it |   | 
| should contain a solution that has been proven to effectively solve the problem in the indicated context |   |