Intent

Make a complex system simpler by providing a unified or general interface, which is a higher layer to these subsystems.

Where to use & benefits

Structure

Participants

Facade  (MainApplet)
It knows which subsystem classes are responsible for a request and delegates client requests to appropriate subsystem objects.

subsystem classes  (IShapeFactory, ShapeContainerContext, ICommandMediator, etc.)
This implement subsystem functionality and handle work assigned by the Facade object.

Example

In the demonstration application, MainApplet class acts the facade class and responsible for delegating the user events and collaborating with other classes to perform the required operations.

Class Diagram


(only few classes are shown in the diagram)

Source Code Links