设计模式-单例模式
Posted lingcoder
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式-单例模式相关的知识,希望对你有一定的参考价值。
目录
单例模式
核心作用 :
- 保证一个类只有一个实例,并且提供一个访问该实例的全局访问点。
常见应用场景:
- 网站计数器
- 数据库连接池的设计
- Spring容器 等等
优点:
- – 由于单例模式只生成一个实例,减少了系统性能开销,当一个对象的产生需要
比较多的资源时,如读取配置、产生其他依赖对象时,则可以通过在应用启动
时直接产生一个单例对象,然后永久驻留内存的方式来解决- – 单例模式可以在系统设置全局的访问点,优化环共享资源访问,例如可以设计
一个单例类,负责所有数据表的映射处理
常见的五种单例模式实现方式:
- 主要:
饿汉式
线程安全,调用效率高。 但是,不能延时加载。
示例:
public class SingletonHungry {
private static SingletonHungry instance = new SingletonHungry();
private SingletonHungry(){} // 私有化构造器
public static SingletonHungry getInstance(){
return instance;
}
}
懒汉式
线程安全,调用效率不高。 但是,可以延时加载。
- 其他:
双重检测锁式
由于JVM底层内部模型原因,偶尔会出问题。不建议使用
静态内部类式
线程安全,调用效率高。 但是,可以延时加载
枚举单例
线程安全,调用效率高,不能延时加载
以上是关于设计模式-单例模式的主要内容,如果未能解决你的问题,请参考以下文章