单例模式的三种实现 以及各自的优缺点
2018-03-08 11:26
281 查看
单例模式:单例模式的意思就是只有一个实例。单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。单例模式有三种:懒汉式单例,饿汉式单例,登记式单例。
优点:第一次调用才初始化,避免内存浪费。缺点:必须加锁synchronized 才能保证单例,(如果两个线程同时调用getInstance方法,会chuxia)但加锁会影响效率。
优点:没有加锁,执行效率会提高。缺点:类加载时就初始化,浪费内存。
内部类只有在外部类被调用才加载,产生SINGLETON实例;又不用加锁。此模式有上述两个模式的优点,屏蔽了它们的缺点,是最好的单例模式。
1.懒汉式单例
优点:第一次调用才初始化,避免内存浪费。缺点:必须加锁synchronized 才能保证单例,(如果两个线程同时调用getInstance方法,会chuxia)但加锁会影响效率。
2.饿汉式单例
优点:没有加锁,执行效率会提高。缺点:类加载时就初始化,浪费内存。
3.登记式模式(holder)
内部类只有在外部类被调用才加载,产生SINGLETON实例;又不用加锁。此模式有上述两个模式的优点,屏蔽了它们的缺点,是最好的单例模式。
相关文章推荐
- 单例模式的三种实现 以及各自的优缺点
- 单例模式的三种实现 以及各自的优缺点
- 单例模式的三种实现 以及各自的优缺点
- 讲解delegate,notifucation,KVO三种模式实现通信的优缺点
- Java中四种常见的单例模式以及各自优缺点总结
- 单例模式的几种实现方式和各自优缺点分析
- Php与Apache的三种结合方式以及各自优缺点
- 三种工厂模式的分析以及C++实现
- 讲解delegate,notifucation,KVO三种模式实现通信的优缺点
- 三种工厂模式的分析以及C++实现
- Php与Apache的三种结合方式以及各自优缺点
- java集合的三种遍历方式以及各自优缺点分析
- delegate,notifucation,KVO三种模式实现通信的优缺点
- delegate,notification,KVO三种模式实现通信的优缺点
- 三种工厂模式的分析以及C++实现
- LVS 三种工作模式原理、以及优缺点比较
- 设计模式:单例模式的三种创建方式及其各自的优缺点
- LVS 三种工作模式原理、以及优缺点比较
- 三种工厂模式的分析以及C++实现
- LVS 三种工作模式原理、以及优缺点比较