Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.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 - Fatal编程技术网

Javascript 什么是工厂?

Javascript 什么是工厂?,javascript,Javascript,我和我的一个朋友聊天,他有大约9年的JS经验。他帮我解决了一个代码问题,谈到了闭包和javascript工厂。我以前从未听说过这个词,我想知道“工厂”是否是javascript社区/语言中的一种东西?如果是的话,有人能给我解释一下吗 我知道闭包是什么,但据他说,“工厂”是学习语言的下一个层次。来自: 在基于类的编程中,工厂方法模式是一种创新 使用工厂方法处理创建问题的模式 对象,而无需指定所需对象的确切类 将创建。这是通过调用工厂来创建对象来完成的 方法在接口中指定并由子级实现 类,或在基类中实

我和我的一个朋友聊天,他有大约9年的JS经验。他帮我解决了一个代码问题,谈到了闭包和javascript工厂。我以前从未听说过这个词,我想知道“工厂”是否是javascript社区/语言中的一种东西?如果是的话,有人能给我解释一下吗

我知道闭包是什么,但据他说,“工厂”是学习语言的下一个层次。

来自:

在基于类的编程中,工厂方法模式是一种创新 使用工厂方法处理创建问题的模式 对象,而无需指定所需对象的确切类 将创建。这是通过调用工厂来创建对象来完成的 方法在接口中指定并由子级实现 类,或在基类中实现并可选地由 派生类,而不是通过调用构造函数

发件人:

工厂模式是另一种与产品相关的创新模式 创建对象的概念。它与其他模式的不同之处 在其类别中,它并不明确要求我们使用 构造器。相反,工厂可以为用户提供通用接口 创建对象,在其中可以指定要创建的factory对象的类型 希望被创造

假设我们有一个UI工厂,要求我们创建一个类型 用户界面组件的设计。而不是直接使用 新操作符或通过另一个创造性构造函数,我们要求 而不是新组件的Factory对象。我们通知工厂什么 对象的类型是必需的(例如“按钮”、“面板”),它会实例化 这个,还给我们使用

如果对象创建过程是 相对复杂,例如强烈依赖于动态因素或 应用程序配置

这种模式的示例可以在诸如ExtJS之类的UI库中找到 其中,创建对象或组件的方法可能更复杂 子类

例如:

var Brand = {
    Daihatsu : function(type) {
        this.type = type;
    },
    Honda : function(type) {
        this.type = type;
    },
    Toyota : function(type) {
        this.type = type;
    }
};

var Car = {
    factory : function(brand, type) {
        return new Brand[brand](type);
    }
};

var cars = [
    Car.factory('Honda', 'Civic'),
    Car.factory('Toyota', 'AYGO'),
    Car.factory('Daihatsu', 'Consorte'),
    Car.factory('Toyota', 'Carina')
];

谷歌的“编程工厂”。请参考我认为你一般不鼓励使用工厂模式的
new