jeudi 28 septembre 2017

Are `final` on `class Singleton` and `private` on `Singleton()` redundant with each other? [duplicate]

This question already has an answer here:

From http://ift.tt/2fCihW2

An implementation of the singleton pattern must:

  • ensure that only one instance of the singleton class ever exists; and
  • provide global access to that instance.

Typically, this is done by:

  • declaring all constructors of the class to be private; and
  • providing a static method that returns a reference to the instance.

The instance is usually stored as a private static variable; the instance is created when the variable is initialized, at some point before the static method is first called. The following is a sample implementation written in Java.

public final class Singleton {
    private static final Singleton INSTANCE = new Singleton();

    private Singleton() {}

    public static Singleton getInstance() {
        return INSTANCE;
    }
}

Are final on class Singleton and private on Singleton() redundant with each other?

Does only either of them suffice?

Thanks.

Aucun commentaire:

Enregistrer un commentaire