Inversion Of Control
Also called the HollywoodPrinciple ('Don't call us we'll call you').
Objects implement an interface and register themselves, and get called when the time is right. Used mostly by GUIs (event driven).
In software design this pattern is used to facilitate unit testing and produces designs with less coupling. Instead of an object creating the objects it needs or fetching them itself, they are provided to it, either in the constructor, via a mutator, or as a parameter to the call.