基本上我有一个类,它的一个实例是通过Singleton类创建的。除了单例类之外,不应该通过任何其他方式实例化该类。我的问题是,除了Singleton之外,其他类是否可以有效地“看不到”这个类。
我知道内部类和不同的包等会有帮助,但我很好奇是否有人有一个很好的解决方案。
感谢您的回复
发布于 2012-04-15 03:09:23
使用枚举执行单例的一种简单而有效的方法:
public enum Singleton {
INSTANCE;
public void execute (String arg) {
//... perform operation here ...
}
}发布于 2012-04-15 03:05:56
只要将类本身重构为单例即可。私有构造函数等。
发布于 2012-04-15 03:07:55
Java没有像C++那样的“朋友”概念
您提到了嵌套类(真正的内部类将不起作用,因为它们需要外部类)和包。
除了创建实例的方法之外,我还不知道保护其他类的其他方法。
但一般来说,没有理由通过帮助器类来构建单例。
您可以使用枚举或静态最终变量构建单例
What is the best approach for using an Enum as a singleton in Java?
public enum Elvis implements HasAge {
INSTANCE;
private int age;
@Override
public int getAge() {
return age;
}
}class X {
public static final X instance = new X ();
private X () {
}
...
} https://stackoverflow.com/questions/10156420
复制相似问题