单件模式,又称单例模式,确保一个类只有一个实例,并提供全局访问点。

  单件模式是比较简单且容易理解的一种设计模式。只有一个实例,通常的做法。。。TODO

  类图比较简单,如下所示:

  

  示例代码:

  懒汉模式(初始化时就创建对象):

public class Singleton {
private final static Singleton uniqueInstance= new Singleton(); private Singleton() {} public static Singleton getInstance() {
return uniqueInstance;
}
}

  

  饿汉模式(需要时就创建对象):

public class Singleton {
private static volatile Singleton uniqueInstance= null; private Singleton() {} public static Singleton getInstance() {
if(uniqueInstance== null){
synchronized(this.class){
if(uniqueInstance== null){
INSTANCE = new Singleton();
}
}
}
return uniqueInstance;
}
}

  对某一个类实例化仅一个实例,不涉及类之间的依赖等关系。单件模式注意的地方:单例模式(懒汉模式)在多线程应用下需要谨慎,因为

多个线程同时调用创建实例方法,没有检测到唯一实例的存在,导致各自创建一个实例。当然,上述的代码利用“双重检查加锁”实现减少同synchronized同步所消耗的时间。注:"双重检查加锁"方式只适合jdk5及以后的版本

   单件模式相对比较简单,但是很有实用性。例如获取线程池实例等。

  共勉!!!

  

最新文章

  1. Calendar类测试
  2. 获取客户端真实ip
  3. table数据表格添加checkbox进行数据进行两个表格左右移动。
  4. java 泛型接口示例
  5. VB.NET读取Excel工作表信息
  6. sftp配置
  7. Sass中的mixin,function,extend
  8. The Dangers of JavaScript’s Automatic Semicolon Insertion
  9. lcx源代码以及免杀的研究
  10. android recover 系统代码分析 -- 选择进入
  11. Android开发之布局优化
  12. 这 5 个前端组件库,可以让你放弃 jQuery UI
  13. Vue.js2.0中的变化(持续更新中)
  14. ●BZOJ 4361 isn
  15. git使用:本地分支merge到远程分支
  16. Project中最常用的注意点
  17. install scrapy
  18. Module 的语法
  19. shell 备份 source code
  20. python之对字符串类型的数组求平均值

热门文章

  1. 用深度学习技术FCN自动生成口红
  2. Postgresql-rman
  3. 【Offer】[15] 【二进制中1的个数】
  4. Linux入门基础之一
  5. Zabbix4.2对IIS监控摸索记录
  6. Excel如何动态获取列名
  7. 【LeetCode】BFS 总结
  8. TestNG(十二) 参数化测试
  9. CDH5.16.1离线集成Phoenix
  10. nginx 模块