首页 > 解决方案 > 是否可以在单例中访问其他类的get方法

问题描述

如果我们将包含其他类的包导入“单例类”,是否可以访问其他类的“获取方法”?如果不可能,我该怎么做。我的意图是通过单例类获取其他类的“获取方法”

public class Singleton {

private static Singleton st = null;

private Singleton() {

}

public static Singleton getInstance() {
    if (st == null) {
        st = new Singleton();
    }
    return st;

}

}

标签: java

解决方案


你的代码有点混乱。它永远不会编译,因为该sc实例是 a DataCenter,而Singleton该类是完全不同的类型。事实上,它甚至不是它的亚型。
但是,让我大致解释一下您要实现的目标。

根据定义,Singleton 模式旨在在整个程序生命周期内实现某个类的单个实例,您可以通过调用getInstance方法获得。

通常,您要创建的 Singleton 与隐藏其构造函数(通过将其设为私有)并getInstance公开方法以及其他实用程序方法的类相同。

如果您想使用另一个类来制作另一个Singleton,我实际上可以使用不同的设计模式。就个人而言,我从未见过Singleton 的 Singletons。也许您指的是工厂方法模式,但我建议您仔细研究它的实现。

此链接应该回答您的问题:Java 核心库中的 GoF 设计模式示例


推荐阅读