Java 设计模式之单例模式的详解(创建模式)
来源:互联网 发布:java jlabel 链接 编辑:程序博客网 时间:2024/04/28 17:27
单例模式(Singleton)是指确保一个类有且仅有一个实例,而且自行实例化并向整个系统提供这个实例。
这个类我们也称它为单例类。单例模式的使用在现实世界里很多,比如我们常见的打印机打印的作业队列,一个没打印完,那么只有在队列等待;windows回收站,windows视窗里回收站有且只有一个实例。
单例模式的目的就是有且只提供一个实例,所以它有一下几个特点:
1、单例类只能有一个实例;
2、单例类必须自己创建自己惟一的实例;
3、单例类必须给所有其他对象提供这一实例。
单例模式的一般结构如下:
上图可以看出,单例类自己提供一个实例给自己。
由于java语言的特点在单例的实现上有不同的做法,主要体现在单例类如何实例化自己上。
基于上面三个特点我们可以有两种创建单例类实例的方法,第一个是提前创建好,用的时候直接使用;第二种是等到使用的时候再创建实例,业界称第一种为饿汉式,后者成为懒汉式。
饿汉式单例设计模式
public class HungrySingleton { //创建实例 private static final HungrySingleton singleton =new HungrySingleton(); //私有构造子 private HungrySingleton(){} //静态工厂方法 public static HungrySingleton getInstance(){ return singleton; } }
懒汉式单例设计模式
public class LazySingleton { //创建实例 private static LazySingleton singleton =null; //私有构造子 private LazySingleton(){} //静态工厂方法 synchronized public LazySingleton getInstance(){ //如果为空就new一个实例 if(singleton==null){ singleton =new LazySingleton(); } return singleton; } }
单例模式的优点:
1.某些类创建比较频繁,对于一些大型的对象,这是一笔很大的开销
2.失去了new操作符,降低了系统内存的消耗,减轻GC压力。
0 0
- Java 设计模式之单例模式的详解(创建模式)
- java设计模式(创建型)之单例模式
- JAVA设计模式之单例模式(创建型)
- java 设计模式-创建模式之单例模式
- java设计模式 -------- 创建模式 之 单例模式
- java设计模式 -------- 创建模式 之 单例模式【转】
- Java设计模式之创建型模式--单例模式
- java设计模式(一)之单例模式详解
- Java设计模式之五(单例模式详解)
- Java设计模式之创建型模式-单例模式(Singleton)
- java设计模式之创建模式(工厂模式,Builder,单例,原型)
- 详解java设计模式(一)之单例模式(创建型)
- JAVA设计模式创建模式之单态模式
- Java设计模式之单例模式(singleton模式)
- java设计模式之单例模式(Singleton模式)
- Java设计模式之单例模式(singleton模式)
- 设计模式之单例模式详解
- 设计模式详解之单例模式
- 对拍程序
- java运行时类信息--原理、API以及应用
- 实例学习ansible系列(4)常用模块之command/shell/raw
- IOS开发数据库篇—SQLite模糊查询
- 树的实现Java
- Java 设计模式之单例模式的详解(创建模式)
- NSNotification是同步还是异步?
- 经典的读者写者问题
- Spark2学习1之基本环境搭建(win)问题
- python之_init_.py文件
- ajax分页
- POJ 1572 字符串替换
- NCReport设计师手册
- Unity优化之减少Drawcall