Design Patterns

Elements of Reusable Object - Oriented Software.

Creatational Patterns

Factory Pattern

Abstract Factory Pattern

Singleton Pattern

Singleton pattern is one of the simplest design patterns in Java. This type of design pattern comes under creational pattern as this pattern provides one of the best ways to create an object.

This pattern involves a single class which is responsible to create an object while making sure that only single object gets created. This class provides a way to access its only object which can be accessed directly without need to instantiate the object of the class.


We’re going to create a SingleObject class. SingleObject class have its constructor as private and have a static instance of itself.

SingleObject class provides a static method to get its static instance to outside world. SingletonPatternDemo, our demo class will use SingleObject class to get a SingleObject object.


Create a Singleton Class.


public class SingleObject {
    // create an object of SingleObject
    private static SingleObject instance = new SingleObject();

    // make the constructor private so that this class cannot be
    // instantiated
    private SingleObject() {};

    // Get the only object available
    public static SingleObject getInstance() {
    return instance;

    public void showMessage() {
    System.out.println("Hello World!");


Get the only object from the singleton class.


public static void main(String[] args) {

    // illegal construct
    // Compile Time Error: The constructor SingleObject() is not visible
    // SingleObject object = new SingleObject();

    // Get the only object available
    SingleObject object = SingleObject.getInstance();

    // show the message


Verify the output.

Hello World!

Builder Pattern

Prototype Pattern

Structure Patterns

Adapter Pattern

Bridge Pattern

Filter, Criteria Pattern

Composite Pattern

Decorator Pattern

Facade Pattern

Flyweight Pattern

Proxy Pattern

Behevioral Patterns

Chain of Responsibility Pattern

Command Pattern

Interpreter Pattern

Interator Pattern

Mediator Pattern

Memento Pattern

Observer Pattern

State Pattern

Null Object Pattern

Strategy Pattern

Template Pattern

Visitor Pattern

J2EE Patterns

MVC Pattern

Business Delegate Pattern

Composite Entity Pattern

Data Access Object Pattern

Front Controller Pattern

Intercepting Filter Pattern

Service Locator Pattern

Transfer Object Pattern