资讯专栏INFORMATION COLUMN

JavaScript设计模式--工厂模式

thekingisalwaysluc / 639人阅读

摘要:什么是工厂模式工厂模式定义一个用于创建对象的接口,这个接口由子类决定实例化哪一个类。而子类可以重写接口方法以便创建的时候指定自己的对象类型抽象工厂。

什么是工厂模式

工厂模式定义一个用于创建对象的接口,这个接口由子类决定实例化哪一个类。该模式使一个类的实例化延迟到了子类。而子类可以重写接口方法以便创建的时候指定自己的对象类型(抽象工厂)。

这个模式十分有用,尤其是创建对象的流程赋值的时候,比如依赖于很多设置文件等。并且,你会经常在程序里看到工厂方法,用于让子类定义需要创建的对象类型。

模式作用:

1.分步创建一个复杂的对象
2.解耦封装过程和具体创建组件
3.无需关心组件如何组装

工厂模式例子:

//1.工厂应该有厂长来决定运行到底哪条产品线
    //2.消费者-》子类
    var gongchang = {};
    gongchang.chanyifu = function(){
        this.gongren = 50;
        alert("我们有"+this.gongren);
    }
    gongchang.chanxie = function(){
        this.gongren = 100;
        alert("产鞋子");
    }
    gongchang.yunshu = function(){
        this.gongren = 10;
        alert("运输");
    }
    gongchang.changzhang = function(para){
        return new gongchang[para]();
    }

    var me = gongchang.changzhang("chanxie");
    alert(me.gongren);

什么时候使用工厂模式

以下几种情景下工厂模式特别有用:

对象的构建十分复杂
需要依赖具体环境创建不同实例
处理大量具有相同属性的小对象

什么时候不该用工厂模式

不滥用运用工厂模式,有时候仅仅只是给代码增加了不必要的复杂度,同时使得测试难以运行下去。

注意:
1、对象构建十分复杂--我们穿鞋很简单,但是制作鞋子的过程十分复杂
2、需要依赖具体的环境创建不同的实例--工厂可以做鞋子,做衣服,工厂可以做我需要的鞋子(鞋子不同),然后送到指定的地方(地方可以不同),可以理解为不同的实例
3、处理大量具有相同属性的小对象--比如买一双鞋,没必要

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/88771.html

相关文章

  • Javascript设计模式-工厂模式

    摘要:设计模式工厂模式最近阅读了几本设计模式方面的书籍学习之余整理下来方便以后的归纳和梳理设计模式工厂模式创造工厂模式是一种创建性模式也就是一种创建对象的最佳实践首先我们需要理解为什么我们需要工厂模式想象一个场景如果你要求去买一些东西板烧鸡腿 Javascript设计模式-工厂模式 最近阅读了几本设计模式方面的书籍,学习之余整理下来,方便以后的归纳和梳理 设计模式-工厂模式 创造工厂模式是一...

    feng409 评论0 收藏0
  • javascript实现简单工厂模式

    摘要:从设计模式的分类来看简单工厂模式是创建型模式。使用简单工厂模式将会增加系统中类的个数,在一定程序上增加了系统的复杂度和理解难度。简单工厂模式由于使用了静态工厂方法,造成工厂角色无法形成基于继承的等级结构。 简单工厂模式提供了一个接口可以根据传递的参数的不同创建不同的对象,从而将对象自身的逻辑与对象的创建分离开。 从设计模式的分类来看简单工厂模式是创建型模式。事实上与简单工厂模式类似的还...

    Code4App 评论0 收藏0
  • JavaScript设计模式-工厂方法模式

    摘要:工厂方法模式,通过对产品类的抽象使其创建业务,主要负责创建多类产品的实例。安全模式类安全模式类可以屏蔽使用类的错误造成的错误。可以将工厂方法看作是一个实例化对象的工厂类,安全起见,采用安全模式类,将创建对象的基类放在工厂方法类的原型中即可。 工厂方法模式,通过对产品类的抽象使其创建业务,主要负责创建多类产品的实例。前面记录了简单工厂模式,但是需求时不断变化的,当需求简单时,直接创建对象...

    shixinzhang 评论0 收藏0
  • JavaScript设计模式系列一:工厂模式

    摘要:设计模式共有种,我今天先来了解一下工厂模式,其他的模式将会在后续的博客中陆续为大家讲解。工厂模式主要分为简单工厂模式和抽象工厂模式。抽象工厂模式抽象工厂模式与简单工厂函数不同的是,抽象工厂函数会先设计好接口,具体的实现在子类中进行。 设计模式 设计模式(design pattern)概念:是一套反复使用、思想成熟、经过分类和无数实战设计经验的总结。是为了代码可重用、可扩展、可解耦、更容...

    OldPanda 评论0 收藏0
  • JavaScript面向对象OOM 2(JavaScript 创建对象的工厂模式和构造函数模式

    摘要:都是构造函数模式创建的原生构造函数。使用构造函数创建对象经历了以下四个过程创建一个新对象构造函数的作用域交给新对象。   在创建对象的时候,使用对象字面量和 new Object() 构造函数的方式创建一个对象是最简单最方便的方式。但是凡是处于初级阶段的事物都会不可避免的存在一个问题,没有普适性,意思就是说我要为世界上(程序中)的所有使用到的对象都使用一遍 var xxx = {} ,...

    you_De 评论0 收藏0
  • JavaScript面向对象OOM 2(JavaScript 创建对象的工厂模式和构造函数模式

    摘要:都是构造函数模式创建的原生构造函数。使用构造函数创建对象经历了以下四个过程创建一个新对象构造函数的作用域交给新对象。   在创建对象的时候,使用对象字面量和 new Object() 构造函数的方式创建一个对象是最简单最方便的方式。但是凡是处于初级阶段的事物都会不可避免的存在一个问题,没有普适性,意思就是说我要为世界上(程序中)的所有使用到的对象都使用一遍 var xxx = {} ,...

    liuchengxu 评论0 收藏0

发表评论

0条评论

thekingisalwaysluc

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<