单例设计模式虽然是老话题了,但是它使用的频率如此之高。看着毕老师的视频,我感觉还是有必要总结一下。
//饿汉模式
public class SingleTon {
//设计成私有化构造方法,不让别处创建对象
private SingleTon(){}
private static SingleTon instance = new SingleTon();
//实例化放在静态代码块里可提高程序的执行效率,但也可能更占用空间。
public static SingleTon getInstance(){
//获取一个实例对象
return instance;
}
}
//懒汉模式
public class SingleTon {
private SingleTon(){}
private static instance = null;
//必须加上synchronized不然多线程访问是不安全的
public static synchronized SingleTon getInstance(){
//不占内存空间,访问时如果对象不存在会创建相应的一个对象。
if(instance == null)
instance = new SingleTon();
return instance;
}
}
//当然还有最新的技术----枚举
public enum SingleTon{
//新技术就是牛,枚举原是c语言中的,虽然java号称把c语言中一些臃肿的东西给去掉了,但是经典就是经典。枚举它又归来啦!
MON;
} |