Singleton(单例模式)要求使用这种模式的类的对象只能有一个,并且还要为之提供一个全局的访问点。
以下是示例代码:
public class Singleton {
private static Singleton instance;
/*
* private 型的构造方法使得我们不能在外部通过使用new来获得实例
*/
private Singleton(){}
public static Singleton getInstance(){
if(instance == null){
instance = new Singleton();
}
return instance;
}
public void test(){
System.out.println("I'm single!");
}
}
因为构造方法有且仅有一个并且还是private型的,对于外界来说相当于这个类没有构造方法,所以我们不能在外部通过使用new来获得实例。上面的方式只支持单线程,要想支持多线程只需做些许修改。
示例代码如下:
public class Singleton {
private static Singleton instance;
/*
* private 型的构造方法使得,我们不能在外间通过使用new来获得实例
*/
private Singleton(){}
public static synchronized Singleton getInstance(){
if(instance == null){
instance = new Singleton();
}
return instance;
}
public void test(){
System.out.println("I'm single!");
}
}