java - 从接口(interface)访问单例的引用,可以吗?

标签 java interface singleton

假设您有一个 Singleton A,其 getInstance() 抛出一些异常。

进一步假设 A 在整个程序中随处使用,虽然 A.getInstance().doSomethingUseful() 很好,但很多代码继承自 Constants 接口(interface),我想声明:

A a = A.getInstance()Constants 中,允许每个实现 Constants 的人访问 a .

正如所料,Java 提示该方法抛出异常,因此无法在接口(interface)中声明。

有解决方法吗?

最佳答案

我认为这确实不是一个好主意。您试图将该对象的生命周期直接绑定(bind)到实现该接口(interface)的类的结构中。

如果您必须使用单例,那么最好通过 getInstance() 方法显式引用它。是比较直观的。如果需要,请使实例化异常运行时。

更好的是接受这样的前提:单例模式被视为 anti-pattern并考虑替代方案,例如 injection-of-control .

关于java - 从接口(interface)访问单例的引用,可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13823672/

相关文章:

ios - 静态变量如何在实例方法中工作 - 单例

php - PHP 单例类是否以某种方式在请求之间共享?

java - JSON 数组读取第一个元素?

java - 我如何获取 fragment 以将 onClickListener 结果发送回主要 Activity

java - 从内部接口(interface)中的默认方法访问实例变量

java - 如何指示一个类将具有特定的静态方法?

delphi - 如何检查一个类是否实现了一个接口(interface),并尊重超集?

java - 最终静态字段序列化

java - 存储和加载 REST 服务器的配置,避免全局状态(即单例、上下文、依赖注入(inject))

java - Weblogic ApplicationLifecycleListener 未触发