美文网首页
设计模式-四种单利模式

设计模式-四种单利模式

作者: 谢谢那些曾经丶 | 来源:发表于2018-05-05 22:40 被阅读0次
    饿汉模式
    image.png
    • 特点:不管你用还是不用,反正我帮你加载出来,并且不会有线程安全问题保证了只有一份实例。
    懒汉模式(非线程安全)
    image.png
    • 特点:实行了懒加载,只有在你使用的时候才会帮你加载,但是在多线程情况下会有线程安全问题。
    懒汉模式(线程安全)
    image.png
    • 特点:实行了懒加载,并且线程安全
    • 注意:这里的double check是比较经典的,但是需要注意一定要使用volatile修饰实例的引用,因为如果你不用volatile修饰,当你的构造函数里去初始化一些比较重的内容时,恰好另外一个线程拿着你未初始化完全的实例去调用,从而会导致空指针异常,但是使用volatile可以有效的避免这一点。
    静态内部类的形式
    image.png
    • 特点:即实行了懒加载,线程安全,并且不需要加锁,代码非常优雅。
    枚举的形式
    image.png
    • 特点:在枚举中我们明确了构造方法限制为私有,在我们访问枚举实例时会执行构造方法,同时每个枚举实例都是static final类型的,也就表明只能被实例化一次,巧妙的使用的枚举实现单利(Effective java最推荐的一种)

    相关文章

      网友评论

          本文标题:设计模式-四种单利模式

          本文链接:https://www.haomeiwen.com/subject/fpwklftx.html