Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 模块模式和单例模式之间有什么不同?_Javascript_Design Patterns_Singleton_Module Pattern - Fatal编程技术网

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在(显示)模块模式中,模块变量是静态的,并且在方法调用中保持不变。你只需要一个带有局部变量的函数,把一个“类”拆分成几个文件就可以了,因为你可以独立地定义构造函数和不同的原型方法组。模块模式与原型和构造函数有什么关系?你能给我举个例子吗?