当前位置: 技术问答>java相关
这例程不但没有构造函数,还自己new自己?
来源: 互联网 发布时间:2015-06-05
本文导语: 在学习Singleton模式的过程中十分疑惑:以下的例程有两处不理解(见“//-----”部分)! 原文如下: 一般Singleton模式通常有几种形式: public class Singleton { private static Singleton _instance = new Singleton(); //...
在学习Singleton模式的过程中十分疑惑:以下的例程有两处不理解(见“//-----”部分)!
原文如下:
一般Singleton模式通常有几种形式:
public class Singleton {
private static Singleton _instance = new Singleton();
//-----------------为什么没有构造函数?为什么可以自己new自己?
public static Singleton getInstance() {
return _instance;
}
}
调用方法:
Singleton.getInstance()
第二种形式:
public class Singleton {
private static Singleton _instance = null;
public static Singleton getInstance() {
if (_instance==null)
_instancenew Singleton() //----------------这句怎么理解?
return _instance;
}
}
调用方法:
Singleton.getInstance()
原文如下:
一般Singleton模式通常有几种形式:
public class Singleton {
private static Singleton _instance = new Singleton();
//-----------------为什么没有构造函数?为什么可以自己new自己?
public static Singleton getInstance() {
return _instance;
}
}
调用方法:
Singleton.getInstance()
第二种形式:
public class Singleton {
private static Singleton _instance = null;
public static Singleton getInstance() {
if (_instance==null)
_instancenew Singleton() //----------------这句怎么理解?
return _instance;
}
}
调用方法:
Singleton.getInstance()
|
如果只是说没有构造函数就new,我想你应该知道有默认的构建器吧!
不过singleton的主要特点应该是构造函数是private的,这样来保证只会有一个实例!
不过singleton的主要特点应该是构造函数是private的,这样来保证只会有一个实例!
|
_instancenew Singleton() //----------------这句怎么理解?
好象是错了
_instance = new Singleton();
实际上你可以这样理解
第二种形式:
public class Singleton {
private static Singleton _instance = null;
// 就好象是有这句话一样。
private Singleton (){
}
public static Singleton getInstance() {
if (_instance==null)
_instance = new Singleton();
return _instance;
}
}
好象是错了
_instance = new Singleton();
实际上你可以这样理解
第二种形式:
public class Singleton {
private static Singleton _instance = null;
// 就好象是有这句话一样。
private Singleton (){
}
public static Singleton getInstance() {
if (_instance==null)
_instance = new Singleton();
return _instance;
}
}
|
呵呵!你自己写个试试不就知道了吗?为什么就不能自己new一个自己呢?我记得很多书上都有这样的例子!