首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >隐藏类对其他类的可见性

隐藏类对其他类的可见性
EN

Stack Overflow用户
提问于 2012-04-15 03:00:03
回答 5查看 99关注 0票数 1

基本上我有一个类,它的一个实例是通过Singleton类创建的。除了单例类之外,不应该通过任何其他方式实例化该类。我的问题是,除了Singleton之外,其他类是否可以有效地“看不到”这个类。

我知道内部类和不同的包等会有帮助,但我很好奇是否有人有一个很好的解决方案。

感谢您的回复

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-04-15 03:09:23

使用枚举执行单例的一种简单而有效的方法:

代码语言:javascript
复制
public enum Singleton {
        INSTANCE;
        public void execute (String arg) {
            //... perform operation here ...
        }
}
票数 1
EN

Stack Overflow用户

发布于 2012-04-15 03:05:56

只要将类本身重构为单例即可。私有构造函数等。

票数 2
EN

Stack Overflow用户

发布于 2012-04-15 03:07:55

Java没有像C++那样的“朋友”概念

您提到了嵌套类(真正的内部类将不起作用,因为它们需要外部类)和包。

除了创建实例的方法之外,我还不知道保护其他类的其他方法。

但一般来说,没有理由通过帮助器类来构建单例。

您可以使用枚举静态最终变量构建单例

What is the best approach for using an Enum as a singleton in Java?

代码语言:javascript
复制
public enum Elvis implements HasAge {
    INSTANCE;
    private int age;

    @Override
    public int getAge() {
        return age;
    }
}

代码语言:javascript
复制
class X {
     public static final X instance = new X ();

     private X () {
     }
     ...
}  
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10156420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档