What are design patterns ?
Software development is an iterative process and there may be many design problems during development. Design patterns are the solution to software design problems which every developer faces very frequently. Patterns are simply
Types of design patterns
There are three different types of design patterns :
These patterns are used for instantiation of classes. They are concerned with the way of creating objects. Normally object creation happens in the below way by using the new keyword.
Employee emp = new Employee();
The above code is more than enough for object instantiation, but in some cases
the object must be changed according to the nature of the program in runtime, in such cases, creational design patterns will be useful.
- Abstract Factory
- Factory Method
Structural design patterns are concerned with how objects and classes are composed. This pattern helps in simplifying the structure by identifying the relationships. It focuses on
how classes inherit from each other and how they are composed from other classes.
The main goal is to
increase or extend the functionalities of the class
without changing its composition.
These patterns are designed depending on how one class communicates with other. Interaction between classes should be in such a way that
they should easily communicate with each other; still thee classes would be loosely coupled.
- Chain of Responsibilities
- Template Method
OTHER TERMS TO KNOW
What is an abstract class ?
Abstract class means
hiding the implementation and just
showing the function definition to the user. Abstract classes
cannot be instantiated, it should be inherited and then instantiation should be done for the subclass. It can
have both abstract and non-abstract methods.
What is a concrete class ?
A concrete class is a class which has implementation for all of its methods. It cannot have any unimplemented methods. It is simply the sub class which is inherited from an abstract class.