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 事件属性绑定带参数的函数
Mar 13 Javascript
js+css在交互上的应用
Jul 18 Javascript
jquery监控数据是否变化(修正版)
Apr 12 Javascript
jQuery实现用方向键控制层的上下左右移动
Jan 13 Javascript
IE8下String的Trim()方法失效的解决方法
Nov 08 Javascript
javascript判断chrome浏览器的方法
Mar 26 Javascript
我的Node.js学习之路(一)
Jul 06 Javascript
js 判断图片是否加载完以及实现图片的预下载
Aug 14 Javascript
基于jquery实现三级下拉菜单
May 10 Javascript
EasyUI实现下拉框多选功能
Nov 07 Javascript
Vue 进入/离开动画效果
Dec 26 Javascript
解决vue+element 键盘回车事件导致页面刷新的问题
Aug 25 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
yii添删改查实例
2015/11/16 PHP
zen cart实现订单中增加paypal中预留电话的方法
2016/07/12 PHP
如何解决PHP获取不到SESSION信息之一般情况
2019/10/10 PHP
找到一点可怜的关于dojo资料,谢谢作者!
2006/12/06 Javascript
JavaScript全局函数使用简单说明
2011/03/11 Javascript
JS对select控件option选项的增删改查示例代码
2013/10/21 Javascript
JavaScript中使用ActiveXObject操作本地文件夹的方法
2014/03/28 Javascript
javascript函数声明和函数表达式区别分析
2014/12/02 Javascript
使用jQuery不判断浏览器高度解决iframe自适应高度问题
2014/12/16 Javascript
jquery模拟进度条实现方法
2015/08/03 Javascript
JS+CSS实现带有碰撞缓冲效果的竖向导航条代码
2015/09/15 Javascript
jQuery UI Bootstrap是什么?
2016/06/17 Javascript
jQuery表单验证插件解析(推荐)
2016/07/21 Javascript
基于cssSlidy.js插件实现响应式手机图片轮播效果
2016/08/30 Javascript
基于JavaScript实现购物网站商品放大镜效果
2016/09/06 Javascript
浅析JavaScript的几种Math函数,random(),ceil(),round(),floor()
2016/12/22 Javascript
JS设计模式之观察者模式实现实时改变页面中金额数的方法
2018/02/05 Javascript
nodejs前端模板引擎swig入门详解
2018/05/15 NodeJs
JS使用tween.js动画库实现轮播图并且有切换功能
2018/07/17 Javascript
如何为你的JavaScript代码日志着色详解
2019/04/08 Javascript
js实现简易计算器功能
2019/10/18 Javascript
JS正则表达式验证密码强度
2020/03/18 Javascript
Vuejs通过拖动改变元素宽度实现自适应
2020/09/02 Javascript
[51:53]DOTA2-DPC中国联赛 正赛 RNG vs Dragon BO3 第二场 1月24日
2021/03/11 DOTA
PyQt5创建一个新窗口的实例
2019/06/20 Python
解决Django中调用keras的模型出现的问题
2019/08/07 Python
pytorch使用tensorboardX进行loss可视化实例
2020/02/24 Python
详解Selenium 元素定位和WebDriver常用方法
2020/12/04 Python
商务英语专业自荐信
2013/10/14 职场文书
KTV的创业计划书范文
2014/02/02 职场文书
社会学专业学生职业规划书
2014/02/07 职场文书
志愿者服务感言
2014/02/27 职场文书
2015年建筑工程工作总结
2015/05/13 职场文书
导游词之台湾安平古堡
2019/12/25 职场文书
JavaScript最完整的深浅拷贝实现方式详解
2022/02/28 Javascript
Python 图片添加美颜效果
2022/04/28 Python