1.首先明确单例的概念和特点:

a>单例类只能有一个实例

b>单例类必须自己创建一个自己的唯一实例

c>单例类必须为其他所有对象提供这个实例

2.单例具有几种模式,最简单的两种分别是“懒汉式”和“饿汉式”:

懒汉式:不会主动创建自己的实例,等待第一次被调用时创建

饿汉式:主动创建自己的实例。

3.两个模式的例子:

懒汉式:

public class Singleton {
private static Singleton uniqueInstance = null; private Singleton() {
// Exists only to defeat instantiation.
} public static Singleton getInstance() {
if (uniqueInstance == null) {
uniqueInstance = new Singleton();
}
return uniqueInstance;
}
// Other methods...
}

饿汉式 :

class Singleton {
private static Singleton instance=new Singleton();
private Singleton(){}
static Singleton getInstance() {
return instance;
}
}

最新文章

  1. Java 中如何原样输出转义符号
  2. JSON简单介绍
  3. mysql添加外键
  4. iOS设计模式之单例模式
  5. [CareerCup] 3.7 Adopt Animal 领养动物
  6. UVa 455 Periodic Strings
  7. 【java开发系列】— JDOM创建、改动、删除、读取XML文件
  8. websphere变成英文了怎么变回中文
  9. ADT下载地址整理
  10. aop为系统添加操作日志,注入或配置声明的方式来实现
  11. 深入理解java虚拟机(一)-----java内存区域以及内存溢出异常
  12. 02、natapp的使用
  13. 002_docker构建zookeeper环境
  14. 从商业角度探讨API设计
  15. 关于JavaScript转义字符('、 " 、\" 、\')【原创】
  16. 被弃用的php函数以及被那个代替
  17. POJ 3762 The Bonus Salary!(最小K覆盖)
  18. ComBoFuzzySearch.js
  19. POJ - 3255 次短路径
  20. JavaScript 学习(2)表单元素

热门文章

  1. HDU 472 Hamming Distance (随机数)
  2. POJ 2404 Jogging Trails
  3. HDU 4882 ZCC Loves Codefires(贪心)
  4. Hadoop MapReduce编程的一些个人理解
  5. 初入Android--环境搭建
  6. Linux路由器
  7. 认识axure组件区域
  8. 8天玩转并行开发——第二天 Task的使用
  9. 初探eXtreme scale
  10. Android中ListView.getCount()与ListView.getChildCount()区别和OnScrollListener()各个参数的区别