我已经看到,在某些项目中,Module Pattern
使用而不是Singleton Pattern
,反之亦然。
我想确切地知道Module Pattern
和Singleton Pattern
之间有什么不同?
答案 0 :(得分:7)
Module pattern指的是用于通用机制的代码的模块化。它可以很好地将一个“类”分成几个文件,因为您可以独立定义构造函数和各种原型方法组。每个模块通常都包含在一个闭包内,以创建静态的局部变量 - 这称为揭示模块模式。
javascript中的Singleton pattern是指实例创建的限制,通常使用lazy initialisation。
当然你可以认为模块模式是单例模式的特化(参见Wikipedia article),构造函数及其原型对象将成为“单实例”的一部分。
然而,您也可以“独立地”将它们组合在一起:定义使用单例方法的类的模块。