Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »

Sure. The Singleton pattern is a creational design pattern that restricts the instantiation of a class to a single instance. This is useful when exactly one object is needed to coordinate actions across the system.

The Singleton pattern is typically implemented by creating a class with a method that creates a new instance of the class if one does not exist. If an instance already exists, it simply returns a reference to that object. To make sure that the object cannot be instantiated any other way, the constructor is made private. Note that the Singleton pattern is not considered to be a good design solution in a multi-threaded environment because it can be broken through multithreading if not implemented with care.

Here's an example of how you might create a singleton in Java:

public class Singleton {
    // Step 1: Declare a private static instance of the same class
    private static Singleton singletonInstance;

    // Step 2: Private constructor to restrict instantiation of the class from other classes
    private Singleton() { }

    // Step 3: Public static method that returns the instance of the class
    public static Singleton getInstance() {
        // lazy initialization
        if (singletonInstance == null) {
            singletonInstance = new Singleton();
        }
        return singletonInstance;
    }
}

In the above example, Singleton class maintains a static reference to its own instance and returns that reference from the static getInstance() method.

Singleton classes are often used for logging, driver objects, caching, thread pool, database connections, etc. But keep in mind, Singleton pattern is known to be an anti-pattern in certain situations due to its global state, so use it carefully.

  • No labels