MLDN
课程咨询[孔老师]QQ 1031143579孔老师QQ课程咨询留言 课程咨询[徐老师 ]QQ 945313230
徐老师QQ课程咨询留言
课程咨询[刘老师 ]QQ 514543793
刘老师QQ课程咨询留言
java培训
北京java培训
IT电子教育门户 高端JAVA培训 -=> 资源中心 -=> JAVA SE技术专区 -=> JAVA设计模式 -=> 正文

singleton的几种实现方式

 发布日期:2008-11-26 9:06:00 发布者:[IT电子教育门户]   评论:[]  浏览:

1.Eager

public class EagerInitialization {
private static Resource resource = new Resource();
public static Resource getResource() {
return resource;
}
static class Resource {
}
}


    2.Lazy

public class SafeLazyInitialization {
private static Resource resource;
public synchronized static Resource getInstance() {
if (resource == null)
resource = new Resource();
return resource;
}
static class Resource {
}
}


    3.double checked locking singleton ( 仅适用于java 5.0 以上版本)

public class DoubleCheckedLockingSingleton {
//java5.0 修改了内存模型, 可以保证使用volatile 声明的变量对于double checked locking是正确的
private volatile static DoubleCheckedLockingSingleton uniqueInstance;

private DoubleCheckedLockingSingleton() {}

public static DoubleCheckedLockingSingleton getInstance() {
if (uniqueInstance == null) {
synchronized (DoubleCheckedLockingSingleton.class) {
if (uniqueInstance == null) {
uniqueInstance = new DoubleCheckedLockingSingleton();
}

}
}

return uniqueInstance;
}
}


    4.Lazy initialization holder class idiom

public class ResourceFactory {
//增加一个helper类来初始化对象
private static class ResourceHolder {
public static Resource resource = new Resource();
}
public static Resource getResource() {
return ResourceFactory.ResourceHolder.resource;
}
static class Resource {
}
}


    以上四种方法都是线程安全的实现方式。

java视频教程
JAVA核心_75对象序列化练习
 JAVA核心_75对象序列化..
JAVA核心_74对象序列化
 JAVA核心_74对象序列化..
JAVA核心_73字符编码
 JAVA核心_73字符编码 ..
JAVA核心_72Scanner
 JAVA核心_72Scann..
JAVA核心_71 IO练习 二
 JAVA核心_71 IO练习..
相关文章 推荐文章
深入浅出单实例Singleton..[3.30]
设计模式之Singleton(单..[3.5]
java设计模式之创建模式--s..[1.23]
深入浅出单实例Singleton设计模..
Factory模式的优点
反模式可以如何提高编程
State模式在客户端软件中的应用
Flyweight(享元)模式
热门文章
MVC模式和Struts模式的理解
Java中的代理模式
JAVA设计模式之事务处理
使用Java 动态代理实现AOP
用实例学习MVC模式
Java软件架构设计概论
解析MVC模式
Java设计模式之State
怎样成为优秀的软件模型设计者?
Factory模式的优点
今日更新
深入浅出单实例Singleton设计模..
Factory模式的优点
反模式可以如何提高编程
State模式在客户端软件中的应用
Java开发下的设计模式简单说明
Flyweight(享元)模式
软件设计模式在JavaScript中的..
软件设计模式在JavaScript中的..
singleton的几种实现方式
DAO设计模式
JAVA招聘网
 评一评
正在读取…
  姓名:
  评论:
    
【注】 发表评论必需遵守以下条例: !!!
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
关于我们 | 商务合作 | 招聘信息 | 客服中心 | 服务条款 | 免责声明 | 网站导航 QQ留言
Copyright 2009 魔乐培训MLDN.CN all rights reserved 版权所有 京ICP备07008611号