当前位置: 首页 > 知识库问答 >
问题:

工厂功能和模块模式有什么区别?(下文更多)

闻人景澄
2023-03-14

所以我试着把我的脑袋绕在构造函数、工厂函数、IIFE、闭包、模块模式的概念上,但我发现我在什么时候应该使用哪一个真的很困惑。引起我注意的是,工厂功能和模块模式真的很相似,举个例子:

//module pattern
const calculator = (function(){
  const add = (a,b) => (a+b);
  const sub = (a,b) => (a-b);
  const mul = (a,b) => (a*b);
  const div = (a,b) => (a/b);

  return {add, sub, mul, div}
})();

console.log(calculator.add(3,6));


// same with factory functions

 function calc (){
  const add = (a,b) => a+b;
  const sub = (a,b) => a-b;
  return {add, sub}
}

const calculator2 = calc()
console.log(calculator2.add(3,6))

有人能告诉我实际的区别是什么吗?感谢任何帮助!

共有1个答案

焦宁
2023-03-14

概念与出厂功能完全相同。但是,模块模式不是创建一个我们可以反复使用的工厂来创建多个对象,而是将工厂包装在一个IIFE(立即调用的函数表达式)中。

工厂:反复使用创建多个对象

模块:立即调用的函数

引用

 类似资料:
  • 问题内容: 谁能解释工厂模式与策略模式之间的差异? 对我来说,除了一个额外的工厂类(它们以工厂模式创建产品的对象)外,两者看起来都一样 问题答案: 工厂模式是一种创造模式。战略模式是一种运营模式。换句话说,工厂模式用于创建特定类型的对象。策略模式用于以特定方式执行一个操作(或一组操作)。在经典示例中,工厂可能会创建不同类型的动物:狗,猫,老虎,而策略模式将执行特定的动作,例如,移动;使用“跑步”,

  • 问题内容: 我知道有很多关于这两种模式之间差异的文章,但是有些事情我找不到。 从我阅读的内容中,我看到工厂方法模式允许您定义如何创建单个具体产品,但是将实现隐藏给客户端,因为他们将看到通用产品。我的第一个问题是关于抽象工厂。它的作用是允许您在其中创建具体对象系列(取决于您使用的是哪个特定工厂),而不仅仅是一个具体对象吗?抽象工厂是否只返回一个非常大的对象或取决于调用的方法的许多对象? 我的最后两个

  • 我正在从Java9的新特性中学习Java9,讨论中的一个热门话题是模块化JDK。 JAR文件是模块吗? 模块与JAR文件有何不同?

  • 问题内容: 我在只有包的地方使用Java。我知道还有其他编程语言也包含模块。 有什么不同? 问题答案: 很难比较空白中的语义。(您还说什么其他语言?)“模块”可能类似于Java类,Java包或完全其他的东西,具体取决于该其他语言。通常,由于“模块”通常来自过程语言,因此我倾向于讲Java类,但是我认为那一线 很 模糊,您可以令人信服地争论一下程序包。

  • 本文向大家介绍简单工厂和抽象工厂有什么区别?相关面试题,主要包含被问及简单工厂和抽象工厂有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 简单工厂:用来生产同一等级结构中的任意产品,对于增加新的产品,无能为力。 工厂方法:用来生产同一等级结构中的固定产品,支持增加任意产品。 抽象工厂:用来生产不同产品族的全部产品,对于增加新的产品,无能为力;支持增加产品族。

  • 我是新泉。在Bean标记中,我发现了factory-method和factory-method和factory-bean之间有什么区别? 我正在使用factory-method调用我的getInstance静态方法来创建singleton对象。 工厂豆是用来做什么的? 对于给定的答复,我所理解的是 Factory-method用于调用静态方法在同一个bean类中创建对象。 Factory-bean