How to implement design patterns in Java?

Vijay SRJ
The Full Stack Developer
2 min readApr 25, 2020

Design Patterns help in building maintainable and reusable code.

Here are the 23 Design Patterns explained by the Gang of Four in their book “Design Patterns – Elements of Reusable Object-Oriented Software”

I have also published a book on this . Please check out:

All the posts have been created by referring to the original book and they follow the below format:

-A Use Case which the design pattern solves

-Explanation of the Design Pattern with code

-What the Gang of Four say about the pattern

-Link to Github URL with the entire code describing the pattern.

Creational :

Deals with how to create objects.

Singleton – Create a single instance of an object.

Prototype – Use an existing object by cloning it.

Factory Method – Delegate creation of an object to another object.

Abstract Factory – Delegate creation of a group of related objects to another object.

Builder – Delegate creation of a complex object to another object.

Structural:

Deals with how to structure objects.

Adapter – Make two incompatible interfaces work together.

Bridge – Separate abstraction and implementation.

Composite – Treat part-whole hierarchy the same way.

Decorator – Add responsibilities to an object dynamically.

Facade – Provide a single interface for a group of related operations.

Flyweight – Reuse objects than creating new ones.

Proxy – Protect access to an object.

Behavioral

Deals with how to communicate between objects.

Chain of Responsibility – Allow different objects to carry out a responsibility.

Command – Encapsulate requests as separate objects.

Mediator – Act as a broker for communication between objects.

Template – Provide basic template of an algorithm to implement.

Strategy – Encapsulate different algorithms using separate objects which can be chosen at run time.

State – Encapsulate state specific behavior in a separate object.

Observer – Intimate group of objects when a change occurs.

Memento – Allow to revert an object’s state.

Iterator – Provide a generic way to iterate through collection of objects.

Interpreter – Represent a grammar using an object.

Visitor – Add new responsibilities to an object without changing its existing behavior.

The code samples for all the above patterns structured under respective folders are present here :

https://github.com/vijaysrj/designPatternsGoF

--

--

Vijay SRJ
The Full Stack Developer

Software Engineer . Writer. Tinkerer. I love tinkering with words and creative pursuits .