Now, as we discussed in the last lecture, that how many design patterns are there, I think there is no exact number right now. But if someone asked me that how many types of design patterns are there, I can tell them that there are three types of design patterns. And these three types are not something which are designed by me Actually, there is a team there was a team whose name was Gang of Four. So, this this three types of design patterns are actually something which was invented by these guys who are actually four friends and these four friends who were actually developers, they have developed this design patterns. And that's why this design patterns are actually known as Gang of Four In short, GLF gang, go for design patterns and ask for them. They have derived three types of design patterns actually, the first type is known as creational design patterns.
Now, these patterns are actually those which are dealing with the process of object creations. Now whenever we do development, we know that C sharp is an object oriented programming language. And if I'm creating an object, then only I can utilize the things which are there inside the class. Now, there are certain mechanisms which helped me to create an object and instantiated object as an end, when I need that. Now, this creational design patterns are going to help me in the process of object creation in such a way that they can be decoupled from the implementing system. If you are a developer, and I hope you know that what is the meaning of decouple because decouple, it's something that there are two objects which are not connected with each other.
All sometimes if there is connected but they is not dependent of each other in a programming language, it is really important that when our objects or whenever modules off of the projects are decoupled, then we can separately arrange them independently and that is not going to be affect the other parts of the project. Most of the time when we have huge projects, at that time, we have to take care of these things, because if I change at one place and if that is affecting the other places, then this is going to create a problem for us in maintaining the project. So, this design pattern provides more flexibility and deciding in which objects need to be created for a given use case scenario. We are going to understand multiple creational design patterns in this course, and at that I will discuss more, but just keep one thing in your mind.
This is something which is dealing with object creations. The second kind of pattern is no less Structural Design Patterns, this design patterns are actually dealing with the structure of your project. And it actually this kind of design patterns are dealing with the composition of your object structures. So, the concept of inheritance is used to compose interface and define various ways to compose objects for opting in and new functionalities. Now, we know interfaces are going to be used like contracts, and somewhere in destruction design patterns, we structure eyes, our interface in classes in such a way that will be helpful for us for the future coding standards, a number of functionalities in our project when you want to achieve this thing, this structural design patterns are going to structure eyes our objects properly, and it's going to be helpful for us when I want to reuse those things.
The third pattern is known as behavioral design patterns and This patterns are mostly dealing with the process of communication, or managing the relationship between the entities of your project. And it's going to be between a responsibilities between the objects. Now, we know that when we have application, each application is going to have hundreds of objects created inside that and when we are going to execute the application, most of the time, these objects are going to communicate with each other and they are going to work in a combined manner. At that time, when we execute this application, if we want to understand the communication between the objects and we want to control the flow of the execution, then this behavioral design patterns are going to help me In short, if you want to understand the way of execution, which we call behavior of the application, then you can use this pattern for your ease.
I have created a list of design patterns which are actually in the By Django for now, if you see in the creation design patterns, we have some patterns like factory pattern, abstract factory pattern, which are the most popular one. And we have some like Singleton design pattern, which is the most simple one. Now, this is my past experience that most of the time when I ask someone that which design patterns you know, most of the time people say that I know factory pattern and I know Singleton pattern. And other than these two most of the time people don't know the other patterns. In this particular course, I'm trying to cover as much as possible. And out of this 2024 design patterns, we are going to cover almost 1015 which are the most important and most useful patterns.
In the structure also we have around seven patterns and in behavior we have around 10 patterns combinely all these patterns are actually those patterns which are created By Ganga for other than this pattern also, there are a couple of patterns which are useful in the modern application development. And in this course, I'm not going to cover only these patterns, but I'm going to take I think two three patterns, which are not part of care for those two people are using this thing widely in the project development, then we are also going to use that thank you