原创 深入理解23种设计模式(1) -- 单例模式

发布时间:2021-06-24 08:50:46 浏览 246 来源:猿笔记 作者:ゞ浪人与酒丶

    -保证一个类只有一个实例:并且提供一个访问该全局访问点,##单例创建方式,会立即加载该对象:线程天生安全,调用效率高,类初始化时。不会初始化该对象:真正需要使用的时候才会创建该对象,具备懒加载功能,3.静态内部方式。结合了懒汉式和饿汉式各自的优点:真正需要对象的时候才会加载:加载类是线程安全的,使用枚举实现单例模式优点!实现简单、调用效率高,枚举本身就是单例。由jvm从根本上提供保障,避免通过反射和反序列化的漏洞,缺点没有延迟加载,枚举--定义常量,天生具备JVM保障单例。一般项目定义常量,3##如何选择单例创建方式,--如果不需要延迟加载单例。


    #介绍

    -确保一个类只有一个实例,并提供一个访问全局

    # #如何创建单个实例

    1.饿了么:初始化类的时候会立刻加载对象,所以线程本身是安全的,调用效率高。

    2.惰性类型:初始化类的时候不会初始化对象,只有真正需要的时候才会创建对象,具有惰性加载功能。

    3.静态内部模式:结合懒和饿的优点,真正需要的时候会加载对象,加载类是线程安全的。

    4.枚举单例:用枚举实现单例模式,实现简单,调用效率高。枚举本身就是一个单一的情况,从根本上说是由jvm保证的!通过反射和反序列化避免漏洞,但是加载没有延迟。

    ##1.饥渴的中国实现

    ##2.惰性实现

    ##3.枚举来创建单个实例

    枚举-定义常数,这是由JVM保证单例生成的,并为一般项目定义常数

    # #如何选择如何创建单个实例

    -如果不需要延迟加载单例,可以使用枚举或者饿了么中文,相对比饿了么中文好。

    -如果需要延迟加载,可以使用静态内部类或者懒韩式。相对来说,静态内部类比懒风格好。

    #优点和缺点

    优点:

    1)节省内存,只有一个实例,可重用,方便管理

    缺点:

    1)线程安全问题

    适用场景:

    \t1)Windows的TaskManager(任务管理器)就是很典型的单例模式

    \t2)数据库连接池、线程池和spring(默认的单例模式)都是单例


    ---

    githubDemo地址:[~~~传送门~~~](

    个人博客地址:

作者信息

ゞ浪人与酒丶 [等级:3] Java开发工程师
发布了 65 篇专栏 · 获得点赞 153 · 获得阅读 13236

相关推荐 更多