It is a common practice to divide a system into subsystems to reduce complexity. Subsystems contain classes highly coupled in-between and complexity can grow. Façade opens selected functionality for clients to use while hide the implementation within. Clients can still access other functions if they want (pass by facade). Reduce the dependency between subsystems will enhance the reusability of the overall system and reduce the developing or compiling time for large applications.
Hope this brief could be helpful.
This post has been archived. It cannot be replied.