Getting Started with Design Patterns For Beginners

Hey There! Hows it going? I hope you have are having a fantastic time coding for a while now and I hope that you have some good understanding of Object-Oriented Programming. Some basic knowledge of architecture like Layered Architecture, MVC, MVP, MVVM or any architecture would help you to understand Design Patterns a lot quicker. If not the above I hope you at least know how to write a Class and Instantiate its objects using Constructor. If not then you might want to learn some basic concepts of OOPs, and Layered Architecture before you dive in with me into this one. If you are still want to go one, well then you are just at the right place to get started!
Design Patterns might sound like cool and fancy term at first, and trust me, they are! but as developers, we must be able to identify the scenarios where to use the correct Design Pattern so that we are solving the problems of software engineering rather than just creating more which gets really ugly, I have been there.
There are scenarios where you just might not need to implement a design pattern, so just don’t! and keep things sweet and simple for all of us.
A design pattern isn’t a finished design that can be transformed directly into code. They are reusable templates/style of structuring your code which helps you solve the commonly occurring software engineering problems, since they are reusable, they help in keeping your code DRY (Don’t Repeat Yourself).
There are a total of 23 Design Patterns, hold on before you get intimidated by the big number let me tell you that even I was scared of this big number but trust me they all make coding so beautiful and satisfying to your mind and soul when you understand your own code so well after applying some of the design patterns (but only at the correct place). I might sound a little overexcited to you and trust me you will be too after learning some basic Design Patterns.
There are three major categories of Design Patterns :
1. Creational Patterns
2. Structural Patterns
3. Behavioral Patterns
From the name itself, I think you can guess that they provide reusable code templates for different parts of your project. I think that would be enough for us to get started with Deign Patterns. We would be starting with Creational Design Pattern — Singleton Design Pattern.
