The Facade design pattern provides a solution:
Define a separate
Facade
object that provides
an unified interface for a set of interfaces
in a subsystem.
Work through a Facade
to minimize dependencies on a subsystem.
Describing the Facade design in more detail is the theme
of the following sections.
See Applicability section for all problems Facade can solve.
Facade object
that provides
a simple interface
for (already existing) objects in a subsystem.
Facade.
Facade
object:
Facade).
Facade interface
Facade object
minimizes
dependencies on a subsystem
(loose coupling),
which makes clients easier to
implement, change, test, and reuse.