定义

保证一个类仅有一个实例,并提供一个访问它的全局访问点

使用场景

通常使用在创建需要花费较大资源的对象上,如Hibernate中SessionFactory这样的重量级对象

入门案例:

代码:

饿汉式:

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

懒汉式:

public class Singleton2 {private static Singleton2 singleton = null;private Singleton2(){}public static Singleton2 getInstance(){if(singleton == null){singleton = new Singleton2();}return singleton;}
}

懒汉式-多线程:

public class Singleton3 {private static Singleton3 singleton = null;private Singleton3(){}//注意这是synchronized用得是类锁不是thispublic static synchronized Singleton3 getInstance(){if(singleton == null){singleton = new Singleton3();}return singleton;}
}

懒汉式-多线程-双重判断(高效):

public class Singleton4 {private static Singleton4 singleton = null;private Singleton4(){}public static Singleton4 getInstance(){if(singleton == null){synchronized (Singleton4.class){if(singleton == null){singleton = new Singleton4();}}}return singleton;}
}

转载于:https://www.cnblogs.com/tandi19960505/p/8285101.html

对象创建型 - 单利模式相关推荐

  1. 2018.3.31 设计模式之生成器模式详解及例子(对象创建型模式)

    设计模式之生成器模式(对象创建型模式) 1.定义/概念 将一个复杂对象的创建和它的表示分离,使得同样的创建过程可以有不同的表示. 2.生成模式角色 Builder: 生成器接口,定义创建一个Produ ...

  2. Factory Method(工厂方法)--对象创建型模式

    Factory Method(工厂方法)–对象创建型模式 一.意图 定义一个用于创建对象的接口,让子类决定实例化哪一个类.Factory Method使一个类的实例化延迟到其子类. 二.动机 1.在软 ...

  3. Builder(生成器)--对象创建型模式

    Builder(生成器)–对象创建型模式 一.意图 将一个复杂的对象构建与它的表示分离,使得同样的构建过程可以创建不同的表示. 二.动机 1.在软件系统中,有时候面临着"一个复杂对象&quo ...

  4. 设计模式之原型法(ProtoType)----对象创建型模式

    设计模式之原型法(ProtoType)----对象创建型模式 1.意图 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. 2.适用性 1)当要实例化的类是在运行时刻指定时,例如,通过动 ...

  5. 设计模式(23):创建型-原型模式(Prototype)

    设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于 ...

  6. JAVA设计模式(04):创建型-建造模式(Builder)

    转载自: http://blog.csdn.net/lovesomnus/article/details/23743049 没有人买车会只买一个轮胎或者方向盘,大家买的都是一辆包含轮胎.方向盘和发动机 ...

  7. 设计模式二:创建型-工厂模式

    创建型模式:工厂模式 文章目录 创建型模式:工厂模式 工厂模式 1.工厂模式:介绍 2.工厂模式:模拟场景 3.工厂模式:代码实现 4.工厂模式:总结 工厂模式 1.工厂模式:介绍 工厂模式 简单工厂 ...

  8. 【设计模式_青春版】创建型|原型模式

    文章目录 原型模式(创建型) 原型模型的概念 一.实现Cloneable接口 二.实现自定义的顶层接口 java中的浅拷贝 Java中深拷贝 一.改造克隆方法 二.序列化与反序列化 总结 原型模式(创 ...

  9. 设计模式之美(4)-创建型-建造者模式

    Builder模式,中文翻译为建造者模式或者构建者模式,也有人叫它生成器模式. 建造者模式原理和代码非常简单, 难点在于应用场景.比如直接使用构造函数或者配合set方法就能创建对象,为什么还需要建造者 ...

最新文章

  1. Epoll在LT和ET模式下的读写方式
  2. SQL Server存储过程(转载)
  3. StringBuilder字符串缓冲区
  4. 2014_guangzhou_onsite
  5. 重装操作系统时遇到的一些问题的解决方法总结
  6. Introduction to Conditional Random Fields
  7. 鲁大师软件测试在哪,鲁大师测网速(鲁大师网速测试在哪里)
  8. win10连接计算机,win10怎么连接局域网打印机
  9. 七周成为数据分析师教程
  10. 线性方程组解的几何意义
  11. c51中的_crol_和_cror_
  12. QQ 邮箱设置自定义域名邮箱
  13. 华为HG8347R V3R016C10S135光猫桥接 北京联通 恢复华为原版
  14. GD32F4(2): 用keil5打开官方评估版demo,编译报错找不到core_cm4.h文件
  15. 东华大学专业英语 词汇学习
  16. flink教程-聊聊 flink 1.11 中新的水印策略
  17. fiddle抓包详细教程
  18. (二)RFB协议具体通信说明
  19. 数据库实验-触发器实验
  20. 手机修图软件测试,Snapseed手机修图软件免费版

热门文章

  1. 面试官:编写一个 SQL 查询,找出每个部门工资第二高的员工
  2. 月收入不足三千的人,每月的开销都是怎样的?
  3. 热水器是长期开着好还是要等到用的时候才开?
  4. 事业单位的到手工资不高,甚至有点低,为什么这么多人去考?
  5. 短视频的运营团队分为三种
  6. 做一个软件工程师是什么感觉,工作过程中是否觉得开心?
  7. OpenCV调整图像的亮度
  8. Java中@WebServlet的使用方法
  9. C++STL之next_permutation()函数使用
  10. 联通突然从4g变成3g了_老人机真不能用了?!联通逐渐关闭2G、3G信号服务