实现单例模式的写法有很多种,下面列出单例的几种常用的写法,在写单例的代码前,回
顾下几个方面内容。
1:单例的作用:保证应用程序中,一个(class)类只有一个实例对象。
2:单例的条件:
[list]
[*]
[*] 构造函数是私有的
[*]
[*] 有一个private static 该类型的实例变量
[*]
[*] 通过一个public static 的getInstance的方法,获取它的引用。继而调用其中的方法
[/list]
方式一:
方式二:
上面那种形式要更加安全些呢? 大多数的朋友认为第二种形式要更加安全些
顾下几个方面内容。
1:单例的作用:保证应用程序中,一个(class)类只有一个实例对象。
2:单例的条件:
[list]
[*]
[*] 构造函数是私有的
[*]
[*] 有一个private static 该类型的实例变量
[*]
[*] 通过一个public static 的getInstance的方法,获取它的引用。继而调用其中的方法
[/list]
方式一:
public class Singleton {
//构造函数声明为private 表示只供内部调用
private Singleton(){};
private static Singleton instance = new Singleton();
public static Singleton getInstance(){
return instance;
}
}
方式二:
public class Singleton {
private Singleton(){};
private static Singleton instance = null;
public synchronized static Singleton getInstance(){
if (null == instance) {
return new Singleton();
}
return instance;
}
}
上面那种形式要更加安全些呢? 大多数的朋友认为第二种形式要更加安全些