JavaScript设计模式经典之工厂模式


Posted in Javascript onFebruary 24, 2016

一、工厂模式概念

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

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

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

模式作用:

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 new一个对象的实质
Jan 07 Javascript
解读JavaScript代码 var ie = !-[1,] 最短的IE判定代码
May 28 Javascript
js控制页面控件隐藏显示的两种方法介绍
Oct 09 Javascript
jQuery jcrop插件截图使用方法
Nov 20 Javascript
4种JavaScript实现简单tab选项卡切换的方法
Jan 06 Javascript
JavaScript兼容浏览器FF/IE技巧
Aug 14 Javascript
几句话带你理解JS中的this、闭包、原型链
Sep 26 Javascript
jQuery实现遍历复选框的方法示例
Mar 06 Javascript
jQuery自定义图片上传插件实例代码
Apr 04 jQuery
Javascript实现找不同色块的游戏
Jul 17 Javascript
Angular利用内容投射向组件输入ngForOf模板的方法
Mar 05 Javascript
uni-app 组件里面获取元素宽高的实现
Dec 27 Javascript
JavaScript的设计模式经典之建造者模式
Feb 24 #Javascript
JavaScript的设计模式经典之代理模式
Feb 24 #Javascript
jQuery实现验证年龄简单思路
Feb 24 #Javascript
JavaScript实现99乘法表及隔行变色实例代码
Feb 24 #Javascript
JavaScript中Object.prototype.toString方法的原理
Feb 24 #Javascript
JavaScript判断变量是否为数组的方法(Array)
Feb 24 #Javascript
浅析jQuery Ajax请求参数和返回数据的处理
Feb 24 #Javascript
You might like
用phpmyadmin更改mysql5.0登录密码
2008/03/25 PHP
PHP页面中文乱码分析
2013/10/29 PHP
PHP面试常用算法(推荐)
2016/07/22 PHP
php实现PDO中捕获SQL语句错误的方法
2017/02/16 PHP
jQuery 操作XML入门
2008/12/25 Javascript
js中的值类型和引用类型小结 文字说明与实例
2010/12/12 Javascript
JQuery将文本转化成JSON对象需要注意的问题
2011/05/09 Javascript
jQuery动画animate方法使用介绍
2013/05/06 Javascript
两种方法实现在HTML页面加载完毕后运行某个js
2014/06/16 Javascript
JavaScript中最简洁的编码html字符串的方法
2014/10/11 Javascript
JavaScript使用addEventListener添加事件监听用法实例
2015/06/01 Javascript
JavaScript中ES6 Babel正确安装过程
2016/07/18 Javascript
第一次接触神奇的Bootstrap表单
2016/07/27 Javascript
nodejs根据ip数组在百度地图中进行定位
2017/03/06 NodeJs
基于jQuery实现一个marquee无缝滚动的插件
2017/03/09 Javascript
webpack多入口多出口的实现方法
2018/08/17 Javascript
vue store之状态管理模式的详细介绍
2019/06/13 Javascript
javascript实现画板功能
2020/04/12 Javascript
[02:56]DOTA2上海特锦赛小组赛解说FreeAgain采访花絮
2016/02/27 DOTA
python中sys.argv参数用法实例分析
2015/05/20 Python
Python实现将罗马数字转换成普通阿拉伯数字的方法
2017/04/19 Python
python实现学生管理系统
2018/01/11 Python
python3基于TCP实现CS架构文件传输
2018/07/28 Python
python3实现名片管理系统
2020/11/29 Python
python基于SMTP协议发送邮件
2019/05/31 Python
Python基于机器学习方法实现的电影推荐系统实例详解
2019/06/25 Python
python日志模块logbook使用方法
2019/09/19 Python
Python3实现监控新型冠状病毒肺炎疫情的示例代码
2020/02/13 Python
python中读入二维csv格式的表格方法详解(以元组/列表形式表示)
2020/04/24 Python
python基本算法之实现归并排序(Merge sort)
2020/09/01 Python
美国祛痘、抗衰老药妆品牌:Murad
2016/08/27 全球购物
意大利文具和办公产品在线商店:Y-Office
2020/02/27 全球购物
Auguste The Label官网:澳大利亚一家精品女装时尚品牌
2020/06/14 全球购物
大学本科毕业生求职简历的自我评价
2013/10/09 职场文书
2014年师德师风学习材料
2014/05/16 职场文书
法学求职信
2014/06/22 职场文书