Design Patterns :- As a software developer you might have faced so many common problems in your day by day developement activities
due to many reasons but the most commonly encountered problems we faced is related to software designs like Object Creation ,Object Initialization,Integration etc.
So for overcome to these commonly repeated problems ,Design Patterns was came in picture.
Design Patterns are reusable solutions of these common software design
problems.Design Patterns are well defined templates to solve these problems by applied them into real world programming. We can say that these are the Software Patterns
that we need to follow in our daily software design approaches. Firstly we need to identify the software design problems and then based on these problems
we should use the most effective design pattern that will help to optimize our problems and efficient the system with performance and maitainablity.
A pattern suggest a solution to a particular problem or issue in software developement and the solution is like a blueprint that has description
of the specific problem and their solutions too.
"Gang of Four" is the group of 4 Authors, have written a very famous book on Design Patterns and it has mainly 23 Design Patterns that is divided into three categories as listed below.
Below is the list of design patterns which belongs to these three categories :-
Creational Design Patterns | Structural Design Patterns | Behavioural Design Patterns |
---|---|---|
Singleton | Adaptor | Chain of Responsibility |
Factory Method | Bridge | Command |
Abstract Factory | Composite | Interpreter |
Builder | Decorator | Iterator |
Prototype | Facade | Mediator |
Flyweight | Memento | |
Proxy | Observer | |
State | ||
Strategy | ||
Visitor | ||
Template Method |
Why we use Design Patterns ? There are many reasons to use the Design patterns even if you don't encounter any design problems. This is proven and tested concepts that any developer can apply on his/her coding practices so that they can achieve consistent and efficient system with less maintainence with code reusability.If you are working on a large codebase and if you told your team mate that apply the singleton for this specific requirement then they can easily understand and can apply the singleton pattern and you no need to explain it in details to your team mates.It provides faster development of the applications and it makes design process more cleaner and more efficient.
About the Author
Sudheer Singh Chouhan is a Software Engineer having Expertise in Development Design and Architecting the
applications , Project Management , Designing Large Scale Databases in SQL Server since last 17 Years.
Skill Sets :- Microsoft .NET technologies like ASP.Net Core, Web API, LINQ, Web Forms, WinForms, SQL Server,
EntityFramework, Design Patterns, Solid Principles, Microservices, AWS Cloud.