单例模式

单例模式(Singleton)

  1. 限制了实例化次数只能只有一次;(如果实例不存在,则创建一个新实例;如果实例存在,则返回该实例的引用)

  2. 在JavaScript中,Singleton充当了共享资源命名空间,从全局命名空间中隔离出代码实现,从而为函数提供单一访问点。--《JavaScript设计模式 P39》(说白了就是在解释点第1点)

单例模式适用性 

  1. 当类只能有一个实例且客户可以从一个众所周知的访问点访问它时;

  2. 该唯一的实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。--《JavaScript设计模式 P40》

优点:

  1. 只会实例化一次;

  2. 节省内存。

缺点:

  1. 系统中的模块会出现要么紧密耦合;

  2. 要么其逻辑过于分散;

  3. 创建多个实例有困难 ;

  4. 测试会困难;

  5. ~~等。

思路:

  1. 不要过度使用。

应用场景:

  1. 系统中确实只需一个对象来协调其他对象时。(例如使用在通信协调上)

例子:

  • 方法1

    单例模式_第1张图片

  • 方法2

    单例模式_第2张图片

  • 方法2

    单例模式_第3张图片

  • ~~待补充

 一句话总结

  • 重头到尾只会创建一个实例。





你可能感兴趣的:(JavaScript,设计模式)