The pattern is used for providing an interface to the client while hiding all the complexities of a
system.
Typically, there is no predefined UML for this pattern because generally this pattern will wrap around
whatever API you are working with.
But let's see the diagram of the code that will be presented in this module.
As shown in this diagram, do you object structure encapsulated in the left block seems to be pretty
complicated to use by a client application.
Therefore, a facade is needed for providing an interface between the client and the complex program
listed in the lock.
As you can see, the facade utilizes composition containing references to the objects of the program,
as well as their corresponding methods for performing the respective operations.
Normally, the facade will include all the operations from the life cycle of the API you are working
with.
Let's have a look at the implementation of this pattern in the code.