我是从java开始的,所以如果这听起来很愚蠢,请耐心等待。
我正在尝试以下代码:
First.java
class First {
public static void main( String[] args ) {
First f = new First();
f.print();
}
private void print() {
System.out.println( "Hello, World!" );
}
}
在main
函数中,我重新实例化了我需要从静态main方法中调用非静态方法的相同类。
虽然这有效,但我想知道这是一个很好的方法吗?并创建了f
的实例数。
如何确保f
为singleton
。
由于
答案 0 :(得分:4)
关于第一个问题:只创建了一个类First
的实例。
关于第二个问题:
单例模式涉及使用私有构造函数和工厂方法。如果不使用First
工厂方法,则无法创建getInstance
的新实例,并且对getInstance
的所有调用都将返回相同的实例。
class First {
private static First instance = null;
private First() {}
public static First getInstance() {
if (instance == null) {
instance = new First();
}
return instance;
}
}
class Second {
public static void main(String[] args) {
First f = First.getInstance(); //Always the same instance of First.
}
}