梳理|漫谈模式之单例模式写作大纲(什么是漫谈式授课)
 南窗  分类:IT技术  人气:86  回帖:0  发布于1年前 收藏

本文是接下来写漫谈模式系列之单例模式的大纲。

第一部分

主要包括:

  • 单例设计模式简介
  • 引出2种方式:饿汉式懒汉式

饿汉式

汉式

多线程下出现创建不同实例的问题。此时,我们要解决的问题,就是如何保证线程安全,引出【线程安全策略】,包括:

  • 所有属性为final
  • 使用synchronized同步
  • 使用ThreadLocal
  • 使用Lock
  • 使用C.A.S

从安全策略保障的思路上,我们可以编写出多种单例的实现方式。如:

D.C.L的写法

内部Holder类写法

... ...

第二部分

引入问题创建对象的方式除了new之外还有什么?

  • 如何防止反射造成破坏?
  • 如何防止克隆造成破坏?
  • 如何防止序列化/反序列化造成破坏?

给出示例和分析。

第三部分

如果多个场景可以使用,有没有一种统一的编写模版呢?如Singleton<T>的方式进行?

  • 提供多种LazyInitialization<T>的方式
  • 如果使用的是AtomicReference,initialize()创建对象会执行一次还是多次?
  • 如果想要保证只执行一次,有什么方法吗?

最后给出实际项目中的一些单例使用案例,如枚举单例:

使读者对单例的使用能有一个更好的体感。

 标签:文件存储,

讨论这个帖子(0)垃圾回帖将一律封号处理……