Design patterns are recurring solutions to software design problems found during application development.Design patterns are important building blocks for designing and modelling applications on all platforms.
Design patterns was first presented by Erich Gamma, Richard Helm,
Ralph Johnson and John Vlisside. They are also called as “Gang
Of Four”(GoF).
They wrote a book on design patterns titled
"Design Patterns:Elements of Reusable Object-Oriented Software"
Most of the design patterns are grouped into the following three
types:
1) Creational Patterns
2) Structural Patterns
3) Behavioral Patterns
1) Creational Patterns:
Creation Patterns abstracts the object creation process from the
client. It creates objects for the client rather than having
clients instantiate objects directly.
Some of the design patterns under this group are:
a) Factory Method
b) Singleton
c) Microsoft Factory
d) Abstract Factory
2) Structural Patterns:
Structural Patterns are concerned with class and object
composition. They compose interfaces using inheritance and define
ways to compose objects to achieve a new functionality.
Some of the design patterns under this group are:
a) Decorator
b) Facade
c) Adapter
d) Bridge
3) Behavioral Patterns:
Behavioral Patterns are basically concerned with communication
between objects.
Some of the design patterns under this group are:
a)Memento
b)Strategy
c)Template Method
d)Command