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 相关文章推荐
为radio类型的INPUT添加客户端脚本(附加实现JS来禁用onClick事件思路代码)
Nov 11 Javascript
使用JS获取当前地理位置方法汇总
Dec 18 Javascript
Jquery api 速查表分享
Jan 12 Javascript
在Node.js应用中读写Redis数据库的简单方法
Jun 30 Javascript
js+html5实现可在手机上玩的拼图游戏
Jul 17 Javascript
javascript获取本机操作系统类型的方法
Aug 13 Javascript
jQuery实现美观的多级动画效果菜单代码
Sep 06 Javascript
Angular 通过注入 $location 获取与修改当前页面URL的实例
May 31 Javascript
node.js监听文件变化的实现方法
Apr 17 Javascript
jQuery Migrate 插件用法实例详解
May 22 jQuery
解决Layui中templet中a的onclick参数传递的问题
Sep 20 Javascript
《javascript设计模式》学习笔记五:Javascript面向对象程序设计工厂模式实例分析
Apr 08 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
PHP利用REFERER根居访问来地址进行页面跳转
2013/09/28 PHP
php+websocket 实现的聊天室功能详解
2020/05/27 PHP
显示、隐藏密码
2006/07/01 Javascript
Safari5中alert的无限循环BUG
2011/04/07 Javascript
Query中click(),bind(),live(),delegate()的区别
2013/11/19 Javascript
javascript圆盘抽奖程序实现原理和完整代码例子
2014/06/03 Javascript
js随机生成字母数字组合的字符串 随机动画数字
2015/09/02 Javascript
浅谈jQuery 中的事件冒泡和阻止默认行为
2016/05/28 Javascript
javascript的replace方法结合正则使用实例总结
2016/06/16 Javascript
jQuery搜索框效果实现代码(百度关键词联想)
2021/02/25 Javascript
微信小程序 网络请求(post请求,get请求)
2017/01/17 Javascript
详谈for循环里面的break和continue语句
2017/07/20 Javascript
vue-cli 组件的导入与使用教程详解
2018/04/11 Javascript
对Vue.js之事件的绑定(v-on: 或者 @ )详解
2018/09/15 Javascript
JS数组求和的常用方法实例小结
2019/01/07 Javascript
vue获取验证码倒计时组件
2019/08/26 Javascript
vue resource发送请求的几种方式
2019/09/30 Javascript
[00:57]辉夜杯战队访谈宣传片—VG
2015/12/25 DOTA
python字典get()方法用法分析
2015/04/17 Python
python实现简单神经网络算法
2018/03/10 Python
Python3爬虫之urllib携带cookie爬取网页的方法
2018/12/28 Python
pandas中的series数据类型详解
2019/07/06 Python
python实现一个函数版的名片管理系统过程解析
2019/08/27 Python
对tensorflow中tf.nn.conv1d和layers.conv1d的区别详解
2020/02/11 Python
澳大利亚设计师服装在线:MISHA
2019/10/07 全球购物
毕业生物理教师求职信
2013/10/17 职场文书
cf搞笑广告词
2014/03/14 职场文书
防沙治沙典型材料
2014/05/07 职场文书
小学生倡议书范文
2014/05/13 职场文书
领导班子四风对照检查材料范文
2014/09/27 职场文书
教师群众路线教育实践活动个人对照检查材料
2014/11/04 职场文书
秋季运动会开幕词
2015/01/28 职场文书
2015民办小学年度工作总结
2015/05/26 职场文书
优秀班干部主要事迹材料
2015/11/04 职场文书
详解python网络进程
2021/06/15 Python
Win11 S Mode版本泄露 正式上线后叫做Windows 11 SE
2021/11/21 数码科技