JavaScript設(shè)計(jì)模式經(jīng)典之工廠模式
一、工廠模式概念
工廠模式定義一個(gè)用于創(chuàng)建對(duì)象的接口,這個(gè)接口由子類決定實(shí)例化哪一個(gè)類。該模式使一個(gè)類的實(shí)例化延遲到了子類。而子類可以重寫接口方法以便創(chuàng)建的時(shí)候指定自己的對(duì)象類型(抽象工廠)。
這個(gè)模式十分有用,尤其是創(chuàng)建對(duì)象的流程賦值的時(shí)候,比如依賴于很多設(shè)置文件等。并且,你會(huì)經(jīng)常在程序里看到工廠方法,用于讓子類定義需要?jiǎng)?chuàng)建的對(duì)象類型。
二、工廠模式的作用和注意事項(xiàng)
模式作用:
1、對(duì)象構(gòu)建十分復(fù)雜--我們穿鞋很簡單,但是制作鞋子的過程十分復(fù)雜
2、需要依賴具體的環(huán)境創(chuàng)建不同的實(shí)例--工廠可以做鞋子,做衣服,工廠可以做我需要的鞋子(鞋子不同),然后送到指定的地方(地方可以不同),可以理解為不同的實(shí)例
3、處理大量具有相同屬性的小對(duì)象--比如買一雙鞋,沒必要找工廠生產(chǎn)
注意事項(xiàng):
1、不能濫用工廠,有時(shí)候僅僅是給代碼增加復(fù)雜度--如上3
三、工廠模式代碼和實(shí)戰(zhàn)總結(jié)
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script>
//1.工廠應(yīng)該有廠長來決定運(yùn)行到底哪條產(chǎn)品線
//2.消費(fèi)者-》子類
var gongchang = {};
gongchang.chanyifu = function(){
this.gongren = 50;
alert("我們有"+this.gongren);
}
gongchang.chanxie = function(){
this.gongren = 100;
alert("產(chǎn)鞋子");
}
gongchang.yunshu = function(){
this.gongren = 10;
alert("運(yùn)輸");
}
gongchang.changzhang = function(para){
return new gongchang[para]();
}
var me = gongchang.changzhang("chanxie");
alert(me.gongren);
</script>
</body>
</html>
以上所述是小編給大家介紹的JavaScript設(shè)計(jì)模式經(jīng)典之工廠模式,希望對(duì)大家有所幫助!
- JavaScript設(shè)計(jì)模式之抽象工廠模式介紹
- javascript抽象工廠模式詳細(xì)說明
- 淺析JS抽象工廠模式
- JavaScript設(shè)計(jì)模式之工廠模式和構(gòu)造器模式
- Javascript設(shè)計(jì)模式理論與編程實(shí)戰(zhàn)之簡單工廠模式
- JavaScript設(shè)計(jì)模式之工廠模式簡單實(shí)例教程
- JavaScript設(shè)計(jì)模式之構(gòu)造器模式(生成器模式)定義與用法實(shí)例分析
- JavaScript設(shè)計(jì)模式之單例模式原理與用法實(shí)例分析
- JavaScript設(shè)計(jì)模式之原型模式分析【ES5與ES6】
- JavaScript設(shè)計(jì)模式之裝飾者模式定義與應(yīng)用示例
- JavaScript設(shè)計(jì)模式之工廠模式和抽象工廠模式定義與用法分析
相關(guān)文章
JS清空上傳控件input(type="file")的值的代碼
最近做的一個(gè)小功能,需要清空<input type="file">的值,但上傳控件<input type="file">的值不能通過JavaScript來修改。2008-11-11
一個(gè)報(bào)數(shù)游戲js版(約瑟夫環(huán)問題)
隨便給一個(gè)數(shù) 比如100,那么從1到100圍成一個(gè)圓圈,然后就類似123123報(bào)數(shù)一樣逢3就舍掉,一直這樣輪詢 那么最后剩下來的那個(gè)數(shù)是多少?2010-08-08
javascript對(duì)下拉列表框(select)的操作實(shí)例講解
這篇文章主要介紹了javascript對(duì)下拉列表框(select)的操作。需要的朋友可以過來參考下,希望對(duì)大家有所幫助2013-11-11

