javascript
javascript设计模式简单介绍之【工厂模式】
工廠模式分為兩種,一種是簡單工廠模式。另一種稱之為工廠模式。
簡單工廠模式是使用一個外部的單體或者靜態(tài)方法來生成實(shí)例。
而工廠模式使用子類來決定內(nèi)部成員要實(shí)現(xiàn)那個具體的類的實(shí)例。
工廠模式要求被具體實(shí)現(xiàn)的類,必須提供相同的接口。
下面我們將通過一段代碼來講述一個簡單工廠模式的實(shí)現(xiàn)。
function myMode(){} myMode.prototype = {create:function(){var mode = createmode.create(mode);mode.xxx();//可以對返回的mode執(zhí)行任何你想要的操作return mode;} }var createdmode = (function(){ //一個單例return {creaet:function(mode){var tmpMode;switch(mode){case 'mode1':tmpMode = new mode1();break;case 'mode2':tmpMode = new mode2();break;default:tmpMode = new defamode();break;}checkMode(mode,[xxx,xxx,xxx,xxx,xxx]);//checkMode的作用是檢查mode是否實(shí)現(xiàn)了后面的[xxx]方法,如果沒實(shí)現(xiàn)將拋出異常return tpmMode;}
} })();function checkMode(obj,methods){if(!(typeof obj == 'object')){throw new Error("error");}for(var i=0,len=methods.length;i<len;i++){var method = methods[i];if(!obj[method] || typeof object[method] !== 'function'){throw new Error('error');}} }
通過上面的代碼,便實(shí)現(xiàn)了簡單工廠模式。首先我們有一個myMode,他有一個create方法,這個方法將返回一個mode。
這個mode可以是任何對象。因?yàn)樗怯梢粋€外部單例所創(chuàng)造返回的mode。如果你想改變它,可以在外部單例里加入更多的case。
只要它實(shí)現(xiàn)了規(guī)定的接口,那么它就是符合的工廠模式的。是可以被myMode直接使用的。這一樣以來,就可以把所有的mode集中在一起管理。
想要添加或者更改mode也變得容易。好了,簡單工廠模式到此也就結(jié)束了。
下面是今天在某個群討論時(shí),看到的一段對工廠模式的描述的比較好的話。便順手摘抄了下來
"后宮三千佳麗等待侍寢,大家都有名牌,一個太監(jiān)把牌子拿上來,皇上翻,翻中一牌子給太監(jiān),太監(jiān)去調(diào)這個女人(也許是男人),這個太監(jiān)就相當(dāng)于工廠,皇上給他參數(shù),他根據(jù)參數(shù)去調(diào)用,但具體侍寢的事由后宮去實(shí)現(xiàn),有的KJ,有的是XT,有的是TJ,有的是GJ,有的是XJ,各不相同"
不要問我那些字母代表什么意思,我想大家都懂的~~~~
不好意思,剛剛創(chuàng)建單例那里有點(diǎn)錯誤,已修正。
?
轉(zhuǎn)載于:https://www.cnblogs.com/lynxcat/archive/2012/04/11/2442691.html
總結(jié)
以上是生活随笔為你收集整理的javascript设计模式简单介绍之【工厂模式】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机网络入门指南之计算机网络体系结构
- 下一篇: 英语复习二:每单元的翻译篇章