Frameworks
A framework uses other modules. Normal modules have a fixed set of dependencies, and are only extended through subclassing, as per inheritance. A framework may consist of several parts that must be inherited to be used much like several cases of abstract class. It may also be passed references to other objects, as would a class that is sets up a model-view-controller. It may read names of classes from a configuration file or from the user, as in BeanPattern. Instead of code being used by other code, it will use other code on the fly. It is on top of the food chain instead of the bottom.
Read more about this topic: Extensibility Pattern