ABSTRACT

Deal with objects delegating responsibilities to other objects. This results in a layered architecture of components with low degree of coupling.

Facilitate interobject communication when one object is not accessible to the other by normal means or when an object is not usable because of its incompatible interface.