Design Patterns

Design Patterns are very popular in IT Industry among software developers. Design Patterns are a well-proven common solution for generic problems provided by highly expert IT Engineers.

Few of the common benefits of using design patterns are:

  • Design Pattern can be used to develop reusable, more robust, and highly maintainable code so that We can reduce maintenance costs.
  • Since Design Patterns are already provided solutions for common problems by IT experts so it makes our code easy to understand and we can add new functionalities without breaking other parts of the application.
  • Design Patterns help us to create software components in a loosely coupled manner so that components easily UNIT Tested(Writing Junit test would be easier).

Java Design Patterns are commonly divided into three categories:

Creational Design Patterns 

A creational design pattern provides the way to create an Object of a Class in the best possible way for specific situations.

Singleton Pattern
Prototype Pattern
Factory Pattern
Abstract Factory Pattern
Builder Pattern

Structural Design Patterns

A Structural pattern provides a good way to assemble objects and classes into larger structures while keeping these structures flexible and efficient.

Adapter Pattern
Decorator Pattern
Facade Pattern
Proxy Pattern
Composite Pattern
Flyweight Pattern
Bridge Pattern

Behavioral Design Patterns

A Behavioral pattern provides a solution for the better interaction between different objects and how to provide loose coupling and flexibility to extend our application easily.

Template Pattern
Chain of Responsibility Pattern
Mediator Pattern
Strategy Pattern
Observer Pattern
Command Pattern
State Pattern
Visitor Pattern
Memento Pattern
Interpreter Pattern
Iterator Pattern

You May Also Like:

Difference between List and Set in Java Collection ?
When should we choose LinkedList over ArrayList for a given Scenario and Why?
Is there concurrent version for TreeMap and TreeSet in Java Collections Framework?
What is difference between Collections. Sort() and Arrays.sort()? Which one is better with respect to time efficiency?
What are fail-fast and fail-safe Iterator?
What is difference between Iterator and LisIterator?
Why Prime Numbers are considered in writing certain algorithms like hashcode()?
What all collections utilizes hashCode() method in java?
Describe CopyOnWriteArrayList? Where is it used in Java Applications?

That’s all about Java Design Patterns
If you have any feedback or suggestion please feel free to drop in below comment box.