Singleton,有很多种翻译:单例、单键、单态,叫什么不重要,关键在于一个“单”字,单身的单。

Singleton模式的牛逼之处在于:三分钟学会,立等可用,立马让你产生一种“你已经学会设计模式”的幻觉。

几乎所有书箱中关于Singleton的讨论都集中在它的实现方式上,可能涉及到的点包括:是否延迟初始化、多线程访问等,然而这些通常不是问题,它们往往有章法可循。

Singleton的真正问题是:它开放了一个全局可访问的接口,从而导致客户系统非常容易与之产生深度耦合。其中的原因至少包括以下几方面:

  1. 它们太方便了:你不需要生成实例对象,不需要考虑初始化,甚至在调用时你不需要传入任何参数,立调可用。
  2. 设计为Singleton的类往往是用于提供基础型服务,比如内存分配、日志记录或随机数生成等,这意味着很多系统都可能需要它们的服务。

请神容易送神难:短期看是神助攻,长期看是猪队友

  1. Singleton与面向数据编程
  2. Singleton与State模式

results matching ""

    No results matching ""