In software engineering , a design pattern is a general repeatable solution to a commonly occurring problem in software design.
Creational Patterns : deal with the creation of objects.
Structural Patterns : helps you compose groups of objects into large structures, such as complex user interface.
Behavioral Patterns : that identify common communication patterns between objects and realize these patterns.
The Factory Method The Abstract Factory Method The Builder Pattern The Prototype Pattern The Singleton Pattern
Flyweight pattern Façade pattern The Adapter pattern The Bridge pattern The Composite pattern The Decorator pattern The Proxy pattern
The Observer pattern The Mediator pattern The Chain of Responsibility pattern The Template pattern The Interpreter pattern The Strategy pattern The Visitor pattern The State pattern The Command pattern The Iterator pattern The Memento pattern