The following lists the benefits of using the facade pattern
- Provides a simple interface to a complex system without reducing the options provided by the system.
- Shields clients from subsystem components.
- Promotes weak coupling between the subsystem and its clients.
- Reduces coupling between subsystems if every subsystem uses its own Facade pattern and other parts of the system use the
Facade pattern to communicate with the subsystem.
- Translates the client requests to the subsystems that can fulfill those requests.
You should use the Facade pattern when:
- You want to provide a simple interface to a complex subsystem.
- There are many dependencies between clients and implementation classes of an abstraction.
- You want to layer your subsystems.