非常熟悉的一种设计模式
1.饿汉式
即直接创建该单例对象,不存在线程安全问题,spring用的是单例注册表,即一个map对象存储单例对象,是在饿汉式的基础上实现的,也是直接创建对象。(可以了解spring这种思想,以后在设计模块的时候能借鉴)。
2.懒汉式
即在该对象第一次使用的时候再去new对象,这样的好处是可以节省内存空间。
但是存在线程安全问题,需要处理,最简单粗暴的方式是给getInstance方法加锁,但是这样对性能影响大。
最好的方式就是双重判断,第一次判断不走锁,然后争抢锁,然后进行第二次判断,这样的性能是比较好的,也解决了线程安全问题。
23种设计模式——单例模式
最新推荐文章于 2024-05-28 19:32:35 发布