js 工厂模式简要介绍

什么是工厂模式?就好比一个工厂,能造汽车、飞机...,通过对外接口,由顾客决定,来定制哪一款产品。

在js内表现为,一个工厂函数/对象,包含汽车、飞机等子类,提供对外接口,根据参数返回不同子类的实例

简单实例如下:

var factory= {
    car:function(name, size){
        this.name= name;
        this.size= size;
        this.getName= function(){
            return this.name
        }
    },
    plane:function(name, size){
        this.name= name;
        this.size= size;
        this.getName= function(){
            return this.name
        }
    },
    makeCar:function(name, size){
        return new this.car(name, size)
    },
    makePlane:function(name, size){
        return new this.plane(name, size)
    },
    make:function(type, name, size){
        return new this[type](name, size)
    }
}

var o= factory.make(‘plane‘, ‘波音‘, 1000)
console.log(o.getName())

何时使用:

1.对象构建十分复杂

2.需要依赖具体环境创建不同实例

3.处理大量具有相同属性的小对象

优点:

消除对象之间的耦合,将所有实例化的代码放在一个位置以免代码重复

缺点:

大多数类最好使用new关键字和构造函数,可以让代码更加简单易读。而不必去查看工厂方法来知道

时间: 2024-10-04 16:23:27

js 工厂模式简要介绍的相关文章

工厂模式的介绍、优缺点

二.工厂模式 1.介绍 在上一节中介绍了“简单工厂模式”,现在来介绍下“工厂模式”,在“工厂模式”和“简单工厂模式”中,最主要,最明显的区别之一是“工厂模式”下可以设立多个子工厂,而不是所有的产品有单一的工厂来生产,而是给各自特色的子工厂来生产. 2.例子 我们还是继续使用“计算器”来作为例子吧.由于在产品Product的结构模式变化不大,所以就不在载入(详情看“简单工厂模式”的随笔),主要载入“工厂模式”的代码 a.父工厂接口(IFactory接口) import SimpleFactory.

简单工厂模式的介绍、优缺点分析和解决方案

所有的模式都是利用java中的封装.继承.多态这三个特性张开的,就像由这三个秘籍组成的各种变幻万千的招式,而所有的目的都是为了打败坏模式带来的代码垃圾这个敌人,所有的招式都是要求“可维护”.“可扩展”.“可复用”,当然如果达到这三个标准后,基本上“灵活性好”同时也就拥有了. 所以下面介绍最常用的工厂模式,分为三类:简单工厂模式.工厂模式和抽象工厂模式. 一.简单工厂模式 1.介绍 工厂模式,顾名思义,最少有一个生产产品的机器存在的工厂Factory,与此同时,也要有一个构建好的产品模块Produ

js 工厂模式、简单模式、抽象模式

简单工厂模式又称为静态工厂方法,由一个工厂对象决定创建某一种产品对象类的实例,主要用来创建同一类的对象.其实,工厂模式的思想主要是将相同/相似的的对象或类进行提取归类,这样的话,就可以避免写太多重复性的代码.下面通过例子讲解一下: function creatBook(name, time, type) { //创建一个对象,并对对象拓展属性和方法 var o =new Object(); o.name = name; o.time = time; o.type =type; o.getName

js工厂模式

设计工厂模式是为了创建对象.通常在类或者类的静态方法中实现,具有两个目标.其中一个是:当创建相似对象时执行重复操作: 另外一个目标是:编译时不知道具体类型(类)的情况下,为工厂客户提供一种创建对象的接口. 实现如下: //父构造器 function CarMaker(){}//在原型中添加共享的方法 CarMaker.prototype.drive = function(){ return "Vroom, I have "+ this.doors + " doors"

js 工厂模式

工厂模式是管理对象的一种设计模式,通过向外提供一个公共方法用于创建对象.把使用对象的部分与创建对象的部分分离,创建对象部分与对象创建前的初始化分离,职责分离.jQuery.Callbacks是一个工厂,每次调用都会返回一个对象,并且根据传入的不同参数值返回的对象具有不同的特征. 1.简单工厂模式 在工厂方法中,根据传入的参数创建相应的对象,并且返回. function Orange(){ this.color = 'orange'; } function Apple(){ this.color

设计模式——介绍与工厂模式(扁平管理模式VS职业经理人模式)

本文主要对设计模式进行大概解说.特别是对工厂模式进行简明的解析: 一.设计模式的分类 创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 结构型模式,共七种:适配器模式.装饰器模式.代理模式.外观模式.桥接模式.组合模式.享元模式. 行为型模式,共十一种:策略模式.模板方法模式.观察者模式.迭代子模式.责任链模式.命令模式.备忘录模式.状态模式.訪问者模式.中介者模式.解释器模式. 事实上还有两类:并发型模式和线程池模式. 二.设计模式的六大原则 1.开闭原则(Op

iOS设计模式(代码分析系列2:简单工厂模式)

简单工厂模式示例代码下载地址, 1.简述 首先需要说明一下,简单工厂模式不属于23种GOF设计模式之一.它也称作静态工作方法模式,是工厂方法模式的特殊实现(也就是说工厂模式包含简单工厂模式).这里对简单工厂模式进行介绍,是为后面的工厂方法和抽象工厂模式做一个引子. 2.定义 "专门定义一个类来负责创建其他类的实例,被创建的实例通常具有共同的父类." 世界上就是由一个工厂类,根据传入的参数,动态地决定创建出哪一个产品类的实例. 3.结构图 简要分析结构图: ConcreteProduct

23种设计模式--工厂模式-Factory Pattern

一.工厂模式的介绍       工厂模式让我们相到的就是工厂,那么生活中的工厂是生产产品的,在代码中的工厂是生产实例的,在直白一点就是生产实例的类,代码中我们常用new关键字,那么这个new出来的实例就就依赖与这个类,2者之间的耦合度就高,此时我们就可以使用面向对象的去解决这个问题,将变化点封装起来,这就是我们将要首先引入的简单工厂模式:先来说一个场景,比如我们吃水果这个例子吧,我们有时候想吃苹果,有时候想吃橘子,但是每次都需要去买这些水果,后来有个水果店,又卖橘子,又卖苹果,这个水果店就当于简

详解设计模式之工厂模式(简单工厂+工厂方法+抽象工厂)

园子里关于23种设计模式的博文已经可以说是成千上万.车载斗量.屯街塞巷.不计其数.数不胜数.摩肩接踵.汗牛充栋.车水马龙.门庭若市.琳琅满目直至让人眼花缭乱了.在这样的大环境下之所以来写设计模式类的博文,并不是像一些"非主流"的爱情观那样"宁缺毋滥". 只是其一呢,因为相当于给自己做一个总结,加深一下自己这方面的认识,因为掌握了和把它写出来我感觉后者还可以对技能有一个提升,其二呢是因为最近公司有一个内部的training需要讲设计模式. v写在前面 在这里呢,需要向