码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式-单例模式

时间:2018-11-17 10:31:46      阅读:273      评论:0      收藏:0      [点我收藏+]

标签:访问   共享资源   静态内部类   核心   let   single   直接   调用   优化   

目录

单例模式

核心作用 :

  • 保证一个类只有一个实例,并且提供一个访问该实例的全局访问点。

常见应用场景:

  1. 网站计数器
  2. 数据库连接池的设计
  3. Spring容器 等等

优点:

  1. – 由于单例模式只生成一个实例,减少了系统性能开销,当一个对象的产生需要
    比较多的资源时,如读取配置、产生其他依赖对象时,则可以通过在应用启动
    时直接产生一个单例对象,然后永久驻留内存的方式来解决
  2. – 单例模式可以在系统设置全局的访问点,优化环共享资源访问,例如可以设计
    一个单例类,负责所有数据表的映射处理

常见的五种单例模式实现方式:

  • 主要:

饿汉式

线程安全,调用效率高。 但是,不能延时加载。

示例:

public class SingletonHungry {
    private static SingletonHungry instance = new SingletonHungry();
    private SingletonHungry(){} // 私有化构造器
    public static SingletonHungry getInstance(){
        return instance;
    }
    
}

懒汉式

线程安全,调用效率不高。 但是,可以延时加载。

  • 其他:

双重检测锁式

由于JVM底层内部模型原因,偶尔会出问题。不建议使用

静态内部类式

线程安全,调用效率高。 但是,可以延时加载

枚举单例

线程安全,调用效率高,不能延时加载

设计模式-单例模式

标签:访问   共享资源   静态内部类   核心   let   single   直接   调用   优化   

原文地址:https://www.cnblogs.com/LingCoder/p/9972697.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!