Introduction to Design Patterns

Design patterns is an essential concept in software engineering. Every developer should know about Design patterns and how to apply these patterns in your project.

Design Patterns are solutions to some common software design problems. These problems are the recurring design problems that software developers often faced during the development. Design patterns describes a particular problem, its solution, when to apply the solution and its solution benefits.

There are 23 design patterns. They are divided into three categories:

  1. Creational
  2. Structural
  3. Beavioral

Creational Patterns

Creational patterns control the Object Creation. They don’t let you instantiate the object directly. They abstract the object creation logic and give you an object that is suitable for particular situation.

There are five creational patterns.

  1. Factory Method
  2. Abstract Factory
  3. Builder
  4. Prototype
  5. Singleton

Structural Patterns

Structural Patterns describe ways to compose large structure of classes and objects.

There are six structural patterns.

  1. Adapter
  2. Bridge
  3. Composite
  4. Decorator
  5. Facade
  6. Proxy

Behavioral Patterns

Behavioral patterns describe the ways to communicate the messages between objects.

There are twelve behavioral patterns.

  1. Interpreter
  2. Template Method
  3. Chain of Responsibility
  4. Command
  5. Iterator
  6. Mediator
  7. Memento
  8. Flyweight
  9. Observer
  10. State
  11. Strategy
  12. Visitor