博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript设计模式--工厂模式
阅读量:6822 次
发布时间:2019-06-26

本文共 984 字,大约阅读时间需要 3 分钟。

什么是工厂模式

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

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

模式作用:

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、处理大量具有相同属性的小对象--比如买一双鞋,没必要

转载地址:http://oerzl.baihongyu.com/

你可能感兴趣的文章