Dealing with Singletons which have to subclass

后端 未结 3 1167
攒了一身酷
攒了一身酷 2021-02-14 07:10

In the question What is an efficient way to implement a singleton pattern in Java? the answer with the most upvotes says, to use a Enum for implementing a singleton.

Tha

3条回答
  •  温柔的废话
    2021-02-14 08:09

    A Singleton class can extend other classes; actually by default in Java it would anyway extend Object. However what Josh is referring to is that you shouldn't extend a Singleton class because once you extend it, there is more than 1 instance present.

    Answering the comment:

    Actually the best way to implement the Singleton is:

    From Effective Java

    // Singleton with static factory
    public class Elvis {
    private static final Elvis INSTANCE = new Elvis();
    private Elvis() { ... }
    public static Elvis getInstance() { return INSTANCE; }
    public void leaveTheBuilding() { ... }
    }
    

    Here Elvis can extend any other class.

提交回复
热议问题