The facade pattern involves placing a new part between two
existing parts.
Each use of the old part will now have to go through the
new part. The new part present a facade that looks like the
old part.
This makes sense when we expect the part's implementation
to change. For example, if you need to use graphics but do not
want to tie your whole program to a specific graphics
library.