我应该为我的单例类创建受保护的构造函数吗?

Vij*_*bey 3 java singleton design-patterns

按照设计,在Singleton模式中,构造函数应标记为私有,并提供重新构建同一类型实例的私有静态成员的创建方法.我只创建了这样的单例类.

public class SingletonPattern {// singleton class

    private static SingletonPattern pattern = new SingletonPattern();

    private SingletonPattern() {

    }

    public static SingletonPattern getInstance() {
        return pattern;
    }

}
Run Code Online (Sandbox Code Playgroud)

现在,我必须扩展一个单例类来添加新的行为.但私有构造函数不允许定义子类.我正在考虑将默认构造函数更改为单例基类的受保护构造函数.

如果我定义我的构造函数,可能会出现什么问题protected

寻找专家意见....

lij*_*jie 6

如果你通过继承扩展单例类,如果有人抓住你的单例和原始单例,你将有2个单例类运行的实例.

如果原始单身在概念上确实应该是单身,那么使用构图可能就是要走的路.然而,失去了可替代性(你的类不能替代原来的单例;它只是使用它).

你有一个具体的例子吗?