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

单例模式

时间:2018-07-27 13:13:27      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:应用   函数   有一个   单例   注意   模式   线程   一个   枚举类   

单例模式

  • 单例模式的作用就是保证在整个应用程序的生命周期中,任一时刻,单例类的实例都只存在一个。(比如计算机的打印程序只能有一个)

  • 实现方式:
  1. 饿汉模式(线程安全,调用效率高,但是不能延时加载)
  2. 懒汉模式(线程安全,调用效率不高,但是能延时加载)
  3. 双重检测锁模式(由于JVM底层模型原因,偶尔会出问题,不建议使用)
  4. 静态内部类式(线程安全,调用效率高,可以延时加载)
  5. 枚举类(线程安全,调用效率高,不能延时加载,可以天然的防止反射和反序列化调用)
  • 如何选用:
  • 单例对象 占用资源少,不需要延时加载,枚举 好于 饿汉
  • 单例对象 占用资源多,需要延时加载,静态内部类 好于 懒汉式

  • 实例:

      public  class Tset {
    
      /* 使用此方法实现的单例模式
       * 在类被加载时就会实例化这个类的一个对象
       * 由于在使用之前对象已经创建好,因此
       * 可以在多线程的环境下使用这种方法。
       * 
       * 使用单例模式,需要注意的是
       * 单例模式用来保证系统中一个类只有一个实例。
       * 单例类的构造函数必须为私有
       * 同时单例类必须提供一个全局访问点。
       * 
       * */
    
          private Tset() {}
    
          private static Tset Instance = new Tset();
    
          public static Tset getInstance() {
              return Instance;
              }
          }

单例模式

标签:应用   函数   有一个   单例   注意   模式   线程   一个   枚举类   

原文地址:https://www.cnblogs.com/renxiuxing/p/9376917.html

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