codeegginterviewgroup / CodeEggDailyInterview

码个蛋每日面试题
396 stars 54 forks source link

你知道有多少种方式实现单例模式? #192

Open kukyxs opened 4 years ago

lydlovezjr commented 4 years ago

单例模式是应用最广的模式之一,也是最简单的模式,但越是简单的东西,就越容易忽略它的细节,在应用这个模式时,同一个进程内,单例对象的类必须保证只有一个实例存在,比如在一个应用中,应该只有一个ImagerLoader实例,因为这个ImagerLoader中含有线程池、缓存系统、网路请求等,创建一次需要消耗很多资源,因此,没有理由让它构造多个实例,这种不能自由的构造对象,确保某一个类有且只有一个对象实例的情况,就是单例模式的使用场景,那么你知道有多少种方式实现单例?具我所了解的,有六种,下面分别介绍。 1、饿汉方式 2、静态内部类形式 3、懒汉模式(线程安全) 4、Double Check Lock(DCL) 5、枚举模式 6、使用容器实现

参考: https://blog.csdn.net/Rain_9155/article/details/103318029