Creational, Structural and behavioral
Creational Pattern:
Abstract Factory : Creates an instance of several families of classes
Builder: Seperates object consturuction from its representation
Factory Method: Creates an instance of several derived classes
Prototype : A fully initialized instance to be copied or cloned
Singleton : A class in which only a single instance can exist
Structutal Pattern:
Adapter: Match interfaces of different classes
Bridge: Seperate an object's abstraciton form its implementations
Composite: A tree structure of simple and composite objects
Decorator: Add responsibilities to objects dynamically
Facade : A single class that represents an entire subsystem
Flyweight: A fine-grained instance used for efficient sharing
Proxy: An object representing another object
Behavioral Patterns:
Mediator : Defines simplified communication between classes
Memento : Capture and restore an object's internal state
Interpreter : A way to include language elements in a program
Iterator: Sequentially access the elements of a collection
Chain of Resp: A way of passing a request between a chain of objects
Command: Encapsulate a command request as an object
State: Alter an object's behavior when its state changes
Strategy : Encapsulates an algorithm inside a class
Observer: A way of notifying change to a number of classes
Template Method: Defer the exact steps of an algorithm to a subclass
Visitor: Defines a new operation to a class without change