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.