23种设计模式之-单例模式
2017-08-11 10:29
127 查看
什么是单例模式
这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。1、单例类只能有一个实例。
2、单例类必须自己创建自己的唯一实例。
3、单例类必须给所有其他对象提供这一实例。
何时使用,主要解决
主要解决:一个全局使用的类频繁地创建与销毁。何时使用:当您想控制实例数目,节省系统资源的时候。
如何使用
常用单例模式:恶汉式单例子描述:这种方式比较常用,但容易产生垃圾对象。
优点:没有加锁,执行效率会提高。
缺点:类加载时就初始化,浪费内存。
它基于 classloder 机制避免了多线程的同步问题,不过,instance 在类装载时就实例化,虽然导致类装载的原因有很多种,在单例模式中大多数都是调用 getInstance 方法, 但是也不能确定有其他的方式(或者其他的静态方法)导致类装载,这时候初始化 instance 显然没有达到 lazy loading 的效果。
public class Singleton { private static Singleton instance = new Singleton(); private Singleton (){} public static Singleton getInstance() { return instance; } }
相关文章推荐
- 23种设计模式之python实现--Facade模式
- 23种设计模式(3):抽象工厂模式
- 23种设计模式(13):迭代器模式
- 23种设计模式-代理模式
- java23种设计模式
- JAVA的23种设计模式
- 23种设计模式一览
- 23种设计模式UML图
- 从追MM谈Java的23种设计模式
- GoF23种设计模式之行为型模式之命令模式
- 23种设计模式(13):迭代器模式
- 23种设计模式(6)--Bridge模式
- 23种设计模式(3):抽象工厂模式
- Java开发中的23种设计模式详解
- 23种设计模式简述
- 23种设计模式之_组合模式
- 23种设计模式幽默见解
- 23种设计模式之策略设计模式
- 23种设计模式之访问者模式
- 23种设计模式(14):解释器模式