Java设计模式之单例设计模式(Singleton)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java设计模式之单例设计模式(Singleton)相关的知识,希望对你有一定的参考价值。
单例设计模式
单例模式在日常开发中用的也比较多,顾名思义就是一个类的对象在整个系统中只能有一个
优点:
1、单例模式会阻止其他对象实例化其自己的单例对象副本,从而确保所有对象都访问唯一实例
2、由于在整个系统中指存在一个实例对象,避免了频繁的创建和销毁对象,因此可以节约系统资源
3、避免了对共享资源的多重占用
4、自行创建这个单例对象,避免使用时再去创建
缺点:
1、单例模式没有抽象层,所以扩展性比较差
2、不适用于变化的对象,如果同一类型的对象需要在不同的场景下使用,单例就会引起数据的错误
3、滥用单例模式将带来一些负面问题,如为了节省系统资源将数据库的连接池对象设计为单例模式,可能会导致共享连接池对象的程序过多而出现连接池溢出;如果实例化的对象长期不被利用,
系统会认为是垃圾而被GC回收从而导致对象状态的丢失
懒汉 模式:
饿汉模式:
双重锁模式:
总结:
1、懒汉模式特点:线程不安全、加载类时比较快、运行时获取对象的速度比较慢、
2、饿汉模式特点:线程安全、加载类时比较慢,运行时获取对象比较快
3、双重锁模式:线程安全、加载类时比较快、运行时获取对象的速度比较慢
以上是关于Java设计模式之单例设计模式(Singleton)的主要内容,如果未能解决你的问题,请参考以下文章