gpt4 book ai didi

java - 我应该为我的单例类创建 protected 构造函数吗?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:34:43 24 4
gpt4 key购买 nike

根据设计,在 Singleton 模式中,构造函数应标记为私有(private)并提供重新调整相同类型实例的私有(private)静态成员的创建方法。我只创建了这样的单例类。

public class SingletonPattern {// singleton class

private static SingletonPattern pattern = new SingletonPattern();

private SingletonPattern() {

}

public static SingletonPattern getInstance() {
return pattern;
}

}

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

如果我将我的构造函数定义为受保护,会出现什么问题?

寻求专家意见....

最佳答案

如果您通过继承扩展单例类,如果有人捕获您的单例和原始单例,您将有 2 个单例类实例运行。

如果原始单例在概念上确实应该是单例,那么使用组合可能是可行的方法。但是,可替代性就丢失了(您的类不能替代原始单例;它只是使用它)。

有具体的例子吗?

关于java - 我应该为我的单例类创建 protected 构造函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4383220/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com