JavaScript设计模式之工厂模式

时间:2022-01-20 14:00:23

一、工厂模式概念

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

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

二、工厂模式的作用和注意事项

模式作用:

1、对象构建十分复杂--我们穿鞋很简单,但是制作鞋子的过程十分复杂

2、需要依赖具体的环境创建不同的实例--工厂可以做鞋子,做衣服,工厂可以做我需要的鞋子(鞋子不同),然后送到指定的地方(地方可以不同),可以理解为不同的实例

3、处理大量具有相同属性的小对象--比如买一双鞋,没必要找工厂生产

注意事项:

1、不能滥用工厂,有时候仅仅是给代码增加复杂度--如上3

三、工厂模式代码和实战总结

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>

<script>
//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);

</script>
</body>
</html>

 

 其他设计模式链接:

JavaScript模式设计

JavaScript模式设计之单例模式

JavaScript模式设计之构造函数模式

JavaScript模式设计之建造者模式

JavaScript模式设计之工厂模式

JavaScript模式设计之代理模式

JavaScript模式设计之命令模式