Design Pattern

design pattern is a general repeatable solution to a commonly occurring problem in software design.

Advantage:-
They are reusable in multiple projects.
They provide the solutions that help to define the system architecture.
They provide transparency to the design of an application.
They are well-proved and testified solutions since they have been built upon the knowledge and experience of expert software developers.
Design patterns don?t guarantee an absolute solution to a problem.
They provide clarity to the system architecture and the possibility of building a better system.


Creational design patterns:-
These design patterns are all about class instantiation.
While class-creation patterns use inheritance effectively in the instantiation process,
object-creation patterns use delegation effectively to get the job done.

Abstract Factory:-
Creates an instance of several families of classes
Builder:-
Separates object construction from its representation
Factory Method:-
Creates an instance of several derived classes
Object Pool:-
Avoid expensive acquisition and release of resources by recycling objects that are no longer in use
Prototype:-
A fully initialized instance to be copied or cloned
Singleton:-
A class of which only a single instance can exist


Structural design patterns:-
These design patterns are all about Class and Object composition.
Structural class-creation patterns use inheritance to compose interfaces. Structural object-patterns define ways to compose objects to obtain new functionality.


Adapter
Match interfaces of different classes
Bridge
Separates an object’s interface from its implementation
Composite
A tree structure of simple and composite objects
Decorator
Add responsibilities to objects dynamically
Facade
A single class that represents an entire subsystem
Flyweight
A fine-grained instance used for efficient sharing
Private Class Data
Restricts accessor/mutator access
Proxy
An object representing another object


Behavioral design patterns:-
These design patterns are all about Class's objects communication.
Behavioral patterns are those patterns that are most specifically concerned with communication between objects.


Chain of responsibility
A way of passing a request between a chain of objects
Command
Encapsulate a command request as an object
Interpreter
A way to include language elements in a program
Iterator
Sequentially access the elements of a collection
Mediator
Defines simplified communication between classes
Memento
Capture and restore an object's internal state
Null Object
Designed to act as a default value of an object
Observer
A way of notifying change to a number of classes
State
Alter an object's behavior when its state changes
Strategy
Encapsulates an algorithm inside a class
Template method
Defer the exact steps of an algorithm to a subclass
Visitor
Defines a new operation to a class without change

Comments

Popular posts from this blog

Spring Boot + Maven + RestFul + JPA + Sqlite

View & Materialized View

JDBC with Sqlite