Importance of Design Patterns in Software Engineering

Debashis Kar Suvra
2 min readJan 11, 2022

--

When you want to build software, you need to learn a programming language and after some months, you will be able to make software. But building software you will surely face some problems. If the codebase is small it will be easy to manage and maintain. But what if the codebase grows? It will be so hard to maintain. Now here comes the concept of design patterns. A design pattern is the general repeatable solution to a commonly occurring problem. So if you want to follow the best practices while building software you must follow the design patterns. It can speed up the development process. When a new requirement comes or you need to change something from code, if your code is written by following any of the design patterns it is easier to customize.

We do not need to use every design pattern in our program. But we must know every design pattern so that we can use it according to our needs. Design patterns can be divided into three categories. Let’s discuss briefly them.

Design Pattern Diagran
Design Pattern Categories

Creational Design Pattern: If you want to use various object creation mechanisms that will increase flexibility and reuse the code you must use the creational design pattern. Some of the creational design patterns are:

i) Factory Method

ii) Abstract Method

iii) Builder Method

iv) Prototype Method

v) Singleton Method

Structural Design Patterns: If you have two objects and the first object wants to use some of the features of the second object then the structural design pattern is used. Some of the Structural design patterns are:

i) Adapter

ii) Bridge

iii) Composite

iv) Decorator

v) Façade

vi) Flyweight

vii) Proxy

Behavioral Design Pattern: If you want to communicate between objects then the behavioral design pattern is used. Behavioral design patterns are concerned with algorithms and the assignment of responsibilities between objects. Some of the Structural design patterns are:

i) Chain of Responsibility

ii) Command

iii) Interpreter

iv) Mediator

v) Memento

vi) Null Object

vii) Observer

viii) State

ix) Strategy

x) Template method

xi) Visitor

In my next article, I will try to discuss about one by one design patterns.

--

--

Debashis Kar Suvra

Problem Solving || Passionate Software Engineer || Leadership || ML & Data Science enthusiast || Explorer