您的位置:首页 > 编程语言 > Java开发

Java -- 单例模式

2016-03-11 00:00 429 查看
什么是设计模式?
是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。

使用设计模式的目的是什么呢?
使用设计模式是为了可重用代码、让我们的代码更容易被他人理解、保证代码的可靠性更高。

设计模式又哪些呢?最基本有23种。

单例模式
有些对象我们只需要一个,比如:配置文件、工具类、线程池、缓存、日志对象等
如果创造出多个实例,就会导致许多问题,比如占用过多的资源,不一致的结果等。
通过单例模式能够保证整个应用中某个实例有且只有一个。
常用的单例模式有两种:饿汉模式和懒汉模式。
饿汉单例模式:

1 public class Singleton {  2     private static final Singleton singleton = new Singleton();  3     private Singleton() {  4  }  5     /*
6  * 通过static可以将这个方法变成类方法  7  * 使她变为类所有  8     */
9     public static Singleton getSingleton() 10  { 11         return singleton; 12  } 13     /*
14  * 我有点不理解了,为啥要static和final,看样子基础还不够 15      */
16 }


为什么叫饿汉模式:因为这个单例对象还没使用就创建好了。
下面介绍下单例模式中的懒汉模式:

1 public class Singleton {  2     //这个地方我们只是声明一个引用
3     private static Singleton singleton;  4     private Singleton() {  5  }  6     /*
7  * 懒汉模式就是在获取实例的方法中添加判断语句  8      */
9     public static Singleton getSingleton() 10  { 11         if (singleton == null) { 12             singleton = new Singleton(); 13  } 14         return singleton; 15  } 16 }


下面讲讲饿汉模式和懒汉模式的区别:

区别:

饿汉模式的特点是加载类时比较慢,但运行时获取对象的速度比较快,线程安全的

懒汉模式的特点是加载类时比较快,但运行时获取对象的速度比较慢,线程不安全的

便于记忆我说两句:

饿汉模式也就是还没用就有对象实例了,这样时线程安全的,都准备好了,当然安全了。

反过来懒汉模式在需要的开始才创建对象实例,也就是刚开始还没准备好,万一直接进入线程不就不安全了嘛~

学习笔记 来自 《幕课网》
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: