美文网首页
单例模式

单例模式

作者: kenlt | 来源:发表于2018-04-05 21:45 被阅读0次

一、单例模式又叫做 Singleton模式,指的是一个类,在一个JVM里,只有一个实例存在。

二、原理
通过私有化构造方法,不让外部通过new方式得到对象实例。
单例模式分为饿汉模式和懒汉模式。

三、饿汉模式
此方式无论如何都会创建一个实例。
代码:

public class Man{
      //私有化其构造方法
      private Man(){
       }
    
      //用一个私有静态类属性指向一个实例
       private static Man instance = new Man();

       //用一个静态类方法,返回上述实例
       public static Man getInstance(){
             return instance;
       }
}

饿汉模式是立即加载的方式,无论是否会用到这个对象,都会加载。

三、懒汉模式
只有在调用getInstance()方法时,才会创建实例。
代码:

public class Man(){
      // 私有化构造函数
      private Man(){
      }

      //创建静态类变量,赋值为空
      private static Man instance = null;

      //
      public static Man getInstance(){
             //第一次调用时,发现instance不指向任何对象,便创造实例
             if (null == instance){
                    instance = new Man();
             }

            return instance;
      }
  
}

懒汉模式是延迟加载的方式,只有使用的时候才会加载。

四、两种方式的应用场合
饿汉模式:如果在构造方法里写了性能消耗较大,占时较久的代码,比如建立与数据库的连接,那么就会在启动的时候感觉稍微有些卡顿。

懒汉模式:使用懒汉式,在启动的时候,会感觉到比饿汉式略快,因为并没有做对象的实例化。 但是在第一次调用的时候,会进行实例化操作,感觉上就略慢。

如果业务上允许有比较充分的启动和初始化时间,就使用饿汉式,否则就使用懒汉式

五、单例模式的三要素

  1. 构造方法私有化
  2. 静态属性指向实例
  3. public static的 getInstance方法,返回第二步的静态属性

相关文章

  • 【设计模式】单例模式

    单例模式 常用单例模式: 懒汉单例模式: 静态内部类单例模式: Android Application 中使用单例模式:

  • Android设计模式总结

    单例模式:饿汉单例模式://饿汉单例模式 懒汉单例模式: Double CheckLock(DCL)实现单例 Bu...

  • 2018-04-08php实战设计模式

    一、单例模式 单例模式是最经典的设计模式之一,到底什么是单例?单例模式适用场景是什么?单例模式如何设计?php中单...

  • 设计模式之单例模式详解

    设计模式之单例模式详解 单例模式写法大全,也许有你不知道的写法 导航 引言 什么是单例? 单例模式作用 单例模式的...

  • Telegram开源项目之单例模式

    NotificationCenter的单例模式 NotificationCenter的单例模式分析 这种单例模式是...

  • 单例模式Java篇

    单例设计模式- 饿汉式 单例设计模式 - 懒汉式 单例设计模式 - 懒汉式 - 多线程并发 单例设计模式 - 懒汉...

  • IOS单例模式的底层原理

    单例介绍 本文源码下载地址 1.什么是单例 说到单例首先要提到单例模式,因为单例模式是单例存在的目的 单例模式是一...

  • 单例

    iOS单例模式iOS之单例模式初探iOS单例详解

  • 单例模式

    单例模式1 单例模式2

  • java的单例模式

    饿汉单例模式 懒汉单例模式

网友评论

      本文标题:单例模式

      本文链接:https://www.haomeiwen.com/subject/qlgdhftx.html