Creational Design Patterns:
As the name suggests, this design provide mechanism of various object creation which reuse of exsting code and increase flexibility.
.Abstarct factory,Builder,Factory Method,Prototype,Singleton.
Structural Design patterns:
As the name suggests,this pattern help us to create and implement the flexible and efficient structures and how to assemble objects and classes into larger structures.
Adapter,Bridge,Composite,Decorator,Facade,Flyweight,proxy.
Behavioral Design patterns:
as the name suggest,object behaviour and responsibilities between objects are very important and this design pattern are concerned with algorithm as well.
chainofResponsibility,Command,Interpreter,Iterator,Mediator,Memento,Observer,State,Strategy,Template Method,Visitor.
When to apply:
Take the design as a reference and check does the design pattern really works as expected.If yes,then only use the pattern.
The most important part of applying patterns to your codebase is knowing when and where to apply each pattern.
If you implement just for the sake of the pattern,you will probably do more damage to your project.
so we’ve decided to go over the most commonly used patterns in first and give some easy and real time examples step by step.