The facade structural pattern provides a simplified way for you to interact with a more complicated set of interfaces.

This is a simple design pattern that you can use whenever you have a complicated class or set of classes that you want to provide a simpler and easier way for other code to use. It really just comes down to making a new class with a new interface that’s designed to solve the majority of use cases. You can still have some or all of the more complicated interfaces available if you want.

You can compare this facade design pattern with the adapter design pattern which should help explain both patterns. Both involve creating a new interface. the difference between the two patterns though is in their intention.

If you find yourself creating a new interface for another class or set of classes because the new interface is expected and needed by some other code, then you have an adapter.

And if you find yourself creating a new interface for another class or set of classes because the new interface is simpler and easier to use, then you have a facade.