What is Design Pattern

Design patterns provide the solution to software design problems which is evolved from the object oriented programming. Basically design patterns are the reusable of the design and the object.
Implementing design patterns in our applications are proven and tested. Writing the code and aligning with design patterns will make our applications very Reliable, Scalable and Maintainable.   
What are the Design Patterns
Design patterns is a reusable solution for the design and the object interaction for the problems that occur repeatedly in application development. It’s basically a template or you can say description for how to solve problems that can be reusable or we can say we can use it in many situations.
Gang of four (Gof) are those who brought the concept of design pattern. According to them design patterns is “Elements of reusable Object-Oriented software “ .
Gang of Four has divided the book into two parts with first part explaining about the pros and cons of object oriented programming and the second part describes the evolution of 23 classic software design patterns.

For more details, please refer to the following wikipedia article
https://en.wikipedia.org/wiki/Design_Patterns
Types of Design Patterns
Gang of Four have categorised the design patterns in to 3 types based on different problems encountered in the real world applications. They are Creational, Structural and Behavioural.
Creational Design Pattern
These patterns deal with object creation and initialization. Creational pattern gives the program more flexibility in deciding which objects need to be created for a given case.
  1. Singleton
  2. Factory Method
  3. Abstract Factory
  4. Builder
  5. Prototype
Structural Design Patterns
This pattern deals with class and object composition. In simple words, This pattern focuses on decoupling interface, implementation of classes and its objects. 
  1. Adapter
  2. Bridge
  3. Composite
  4. Decorator
  5. Facade
  6. Flyweight
  7. Proxy
Behavioral Design Patterns
These patterns deal with communication between Classes and objects. `
  1. Chain of Responsibility
  2. Command
  3. Interpreter
  4. Iterator
  5. Mediator
  6. Memento
  7. Observer
  8. State
  9. Strategy
  10. Visitor
  11. Template Method


Share this

Related Posts

Previous
Next Post »