单例 模式:
关键点:1 某各类只能有一个实例
2 它必须自行创建这个实例
3 它必须向整个系统提供这个实例
解决的问题:
提供全局需要使用的唯一的数据访问
单例模式UML:
成员: (1)静态的实例 方法:(1)私有构造(2)静态的获取实例方法
单例模式的分类:
1.饿汉式:在类加载时候创建
2.懒汉是:在使用时判断,如果需要在创建
下面是 代码的演示:
//饿汉式
public class SingleHrA {
private static SingleHrA singleHrA=new SingleHrA();;
private SingleHrA(){
}
public static SingleHrA getInstance(){
return singleHrA;
}
}
//懒汉式 需要使用创建 节约部分内存
public class SingleHrB {
private static SingleHrB singleHrB=null;
private SingleHrB(){
}
public static SingleHrB getInstance(){
if(singleHrB==null){
singleHrB=new SingleHrB();
}
return singleHrB;
}
}
可以看到两次访问的对象的地址都是唯一的:
单例模式查看:
this is ASingleHrA@15db9742
this is BSingleHrB@6d06d69c
this is ASingleHrA@15db9742
this is BSingleHrB@6d06d69c