Introduces a useful and easier-to-maintain way of solving certain common design problems. Rather than paying attention to what objects do, functionally, focus on a key distinction: differentiate objects that use other objects from those that instantiate/manage them.