黑马程序员技术交流社区
标题:
单例设计模式
[打印本页]
作者:
刘郑瑞
时间:
2013-1-15 23:57
标题:
单例设计模式
单例设计模式虽然是老话题了,但是它使用的频率如此之高。看着毕老师的视频,我感觉还是有必要总结一下。
//饿汉模式
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;
}
作者:
黄锦成
时间:
2013-1-16 12:23
懒汉式建议优化一下
//懒汉模式
public class SingleTon {
private SingleTon(){}
private static instance = null;
//必须加上synchronized不然多线程访问是不安全的
public static SingleTon getInstance(){
//不占内存空间,访问时如果对象不存在会创建相应的一个对象。
if(instance == null){
synchronized(SingleTon.class){
if(instance == null){
instance = new SingleTon();
}
}
}
return instance;
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2