? 单例类有如下特点:
§ 单例类只有一个实例。
§ 单例类自行创建并提供这个唯一的实例。
? 单例模式有以下的特点:
§ 单例类只能有一个实例。
§ 单例类必须自己创建自己的惟一的实例。
§ 单例类必须给所有其他对象提供这一实例。
下面就是两种单例模式的例子(看注解):
/**
* 单例模式(饿汉式单例类) 从速度和反应时间角度来讲,饿汉式单例类稍好
* @author Administrator
*
*/
public class Singleton {
private static Singleton singleton = new Singleton();
private String value;
//构造方法要私有
private Singleton(){
}
//提供一个对外的方法
public static Singleton getSingleton(){
return singleton;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
第二种
/**
* 单例模式(懒汉式单例类) 单从资源利用效率角度来讲, 懒汉式单例类好些
* @author Administrator
*
*/
public class Singleton2 {
private static Singleton2 singleton = null;
private String value;
//构造方法要私有
private Singleton2(){
}
//提供一个对外的方法
public static Singleton2 getInstance(){
if(singleton == null){
singleton = new Singleton2();
}
return singleton;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
测试方法
public class Test {
public static void main(String[] args) {
Singleton s1 = Singleton.getSingleton();
Singleton2 s2 = Singleton2.getInstance();
System.out.println(s1.equals(s2));
s1.setValue("100");
s2.setValue("200");
System.out.println(s1.getValue());
}
}
1516

被折叠的 条评论
为什么被折叠?



