Software Design Pattern
By: Alok Kumar Sinha.
1) Why do we need “software design pattern”?
Software Design Pattern is used for:
- Converting Conceptual thing into entities and make them live to interact with each other.
- Providing foundation for solutions for the concept.
- For providing Scalability and Reusability.
- Helping organization and developers in gaining expertise in a domain.
2) Different Types of Software Design Patterns:
2.1 Creational Pattern:
Creation pattern deals with object initialization and life-span of object, that is object when initialized by constructor and its life span and finally disposing of the object.
2.1.1 Abstract Factory Pattern:
Factory Pattern deals with objects which looks after the initialization, life-span and disposing of other objects. For example class containing the main method.
2.1.2 Singleton Factory Pattern:
Singleton factory pattern deals with single object initialization. For example sealed class or final class (in java), (which mostly contains the static methods.)
2.1.3 Facade Design Pattern:
A class object acts as bridge for message passing from an input and its internally calls or gets the output from the various objects and perform the desired functionality and returns the desired output or does the requried process for the callee.
Thus it hides the internal complexity of the process.
2.2 Structural Pattern:
Structural design pattern deals with how object communicates with each other to finish a process which can be accessing data from database by user interface or modal view controller of a web application.
2.2.1 Tier Architecture: Primarily consists of User Interface and business access layer and data access layer and other layers.
2.3. Behavioral Design Pattern: Behavioral Pattern describes the communication between the objects to complete a process.
2.3.1 Request-Response or event- action: in which process request objects and in return objects sends a response to it to complete the process.
2.3.2 Searching or Traversing Pattern: in which process invoke objects for searching or traversing for the output so that the process gets completed.
|