Java设计模式之单例设计模式(Singleton)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java设计模式之单例设计模式(Singleton)相关的知识,希望对你有一定的参考价值。

单例设计模式

  单例模式在日常开发中用的也比较多,顾名思义就是一个类的对象在整个系统中只能有一个

  优点:

    1、单例模式会阻止其他对象实例化其自己的单例对象副本,从而确保所有对象都访问唯一实例

    2、由于在整个系统中指存在一个实例对象,避免了频繁的创建和销毁对象,因此可以节约系统资源

    3、避免了对共享资源的多重占用

    4、自行创建这个单例对象,避免使用时再去创建

 

   缺点:

    1、单例模式没有抽象层,所以扩展性比较差

    2、不适用于变化的对象,如果同一类型的对象需要在不同的场景下使用,单例就会引起数据的错误

    3、滥用单例模式将带来一些负面问题,如为了节省系统资源将数据库的连接池对象设计为单例模式,可能会导致共享连接池对象的程序过多而出现连接池溢出;如果实例化的对象长期不被利用,

     系统会认为是垃圾而被GC回收从而导致对象状态的丢失

  懒汉 模式:

      技术分享

 

  饿汉模式:

       技术分享

 

  双重锁模式:

      技术分享

 

 

总结:

  1、懒汉模式特点:线程不安全、加载类时比较快、运行时获取对象的速度比较慢、

  2、饿汉模式特点:线程安全、加载类时比较慢,运行时获取对象比较快

  3、双重锁模式:线程安全、加载类时比较快、运行时获取对象的速度比较慢

 

代码地址

 

    

    

以上是关于Java设计模式之单例设计模式(Singleton)的主要内容,如果未能解决你的问题,请参考以下文章

Java设计模式之单例设计模式(Singleton)

Java设计模式之单例模式 - Singleton

详解Java设计模式之单例模式(Singleton Pattern)

设计模式之单例模式——Singleton

《设计模式》之单例模式(Singleton)

初学设计模式之单例模式