Pattern Definitions:
Singleton Pattern
Ensure a class has only one instance, and provide a global point of access to it.
Factory Method Pattern
Define an interface for creating an object, but let subclasses decide which class to instamtiate. Factory Method lets a class defer instantiation to subclasses.
Abstract Factory Pattern
Provide an interface for creating families of related or dependent objects without specifying their concrete classes.
Template Pattern
Define the skeleton of an algorithm in an operation, deferring some steps to subclasses. Template Method lets subclasses redefine certain steps of an alogrithm without changing the algorithm structure.
Builder Pattern
Seperate the construction of a complex object from its representation so that the same construction process can create different representations.
Proxy Pattern
Provide a surrogate or placeholder for another object to control access to it.
Prototype Pattern
Specify the kinds of objects to create using a prototypical instance, and create new objects by copying this prototype.
Composite Pattern
Compose objects into tree structures to represent part-whole hierarchies. Composite lets clients treat individual objects and compositions of objects uniformly.
Memento Pattern
Without violating encapsulating, capture and externalize an object internal state so that the object can be restored to this state later.