java - 我们可以通过非私有(private)的instanceName来创建一个Singleton类吗?

标签 java design-patterns singleton

通常,我看到 Singleton 类中的实例变量被保持为私有(private)。但是可以将其保持为非私有(private)吗? 如果我们声明一个这样的实例会怎样:-

final static SingletonClass singletonInstance= new SingletonClass(); 

作为有效的 Singleton 类,这会导致任何问题吗?

最佳答案

singleton pattern确保在任何给定时间该类在系统中都是该类的单个实例。该模式没有提及任何有关公共(public)/私有(private)的内容

只要您有一个可用的实例,实现就可以有所不同。

在您的情况下,如果所有构造函数都是私有(private)的,并且其余类将像这样 SingletonClass.singletonInstance 一样访问单例,则将满足单例模式。

关于java - 我们可以通过非私有(private)的instanceName来创建一个Singleton类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37599360/

相关文章:

java - 生成一个整数并将其用作字符串数组的索引

java - 避免将 InstanceOf 与访问者模式一起使用 - Java

java - 使用不同的返回类型实现重载

java - 使用 Java 构建插件系统的最佳方法

design-patterns - 如何使用代理模式来替换单例?

java - 尝试使用 JSON 简单解析 JSON 时出现 NoClassDefFoundError

java - 客户端代码可以访问或设置 http 请求属性吗?

python - 为什么 python 模块表现得像一个单例?

java - 如何将 Jbutton 制作为矩形

http - Flutter:单例数据,getter 在 null 上调用