Javascript 模块模式和单例模式之间有什么不同?
我已经看到在一些项目中,Javascript 模块模式和单例模式之间有什么不同?,javascript,design-patterns,singleton,module-pattern,Javascript,Design Patterns,Singleton,Module Pattern,我已经看到在一些项目中,模块模式使用而不是单例模式,反之亦然 我想确切地知道,模块模式和单例模式之间有什么不同?在javascript中指的是通用机制的代码模块化。在多个文件中拆分一个“类”效果很好,因为您可以独立定义构造函数和多组原型方法。每个模块通常被包装在一个闭包中,以创建静态的局部变量——这称为显示模块模式 在javascript中,引用实例创建的限制,通常使用 当然,您可以考虑模块模式是单模式的专门化(参见),构造函数和它的原型对象将采取“单一实例”的一部分。 然而,你也可以“独立”地
模块模式
使用而不是单例模式
,反之亦然
我想确切地知道,模块模式
和单例模式
之间有什么不同?在javascript中指的是通用机制的代码模块化。在多个文件中拆分一个“类”效果很好,因为您可以独立定义构造函数和多组原型方法。每个模块通常被包装在一个闭包中,以创建静态的局部变量——这称为显示模块模式
在javascript中,引用实例创建的限制,通常使用
当然,您可以考虑模块模式是单模式的专门化(参见),构造函数和它的原型对象将采取“单一实例”的一部分。
然而,你也可以“独立”地将它们结合起来:一个模块,它定义了一个使用单例方法的类。请看一下:@Teemu这是一个很好的文档,但没有阐明它们之间的区别。不同的名称或实现都是毫无意义的?所以,使用
模块模式
作为单例模式
正确吗?当然,您也可以有一个只创建一个单例对象的模块,而不创建任何类(更典型的方法)@Bergi我还有一个问题要补充:模式实用程序.game_manager={functionName:function(){var1,var2…}, ... };代码>与模块模式一样隐藏变量(即,它不显示Utilities.game\u manager
的函数属性中的变量)。那么,这与模块模式之间是否存在差异?我的意思是,显示模块模式返回可以显示隐藏变量的函数,但您可以使用我刚才显示的模式来实现这一点。@Growler在(显示)模块模式中,模块变量是静态的,并且在方法调用中保持不变。你只需要一个带有局部变量的函数,把一个“类”拆分成几个文件就可以了,因为你可以独立地定义构造函数和不同的原型方法组。模块模式与原型和构造函数有什么关系?你能给我举个例子吗?