The last pattern we described in this chapter is a bit different than the three we described before. The previous patterns were all wrapping one and only one component, while the facade pattern wraps multiple components and subsystems. In addition to that, facade is the only pattern from this chapter that provides a reduced interface and not a full feature set of wrapped components.
As such, a facade represents a front for a complex subsystem. Besides connecting subsystems together, it also provides a problem-specific interface. In fact, if we follow the single responsibility principle, we can implement multiple facades for the same set of subsystems, each providing a very specific interface to solve one specific problem.
When you ask your smart device OK, <insert name>, will it rain today?, you are accessing a Facade for an incredibly complex system...