日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

javascript设计模式简单介绍之【工厂模式】

發布時間:2023/12/18 javascript 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 javascript设计模式简单介绍之【工厂模式】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

工廠模式分為兩種,一種是簡單工廠模式。另一種稱之為工廠模式。

簡單工廠模式是使用一個外部的單體或者靜態方法來生成實例。

而工廠模式使用子類來決定內部成員要實現那個具體的類的實例。

工廠模式要求被具體實現的類,必須提供相同的接口。

下面我們將通過一段代碼來講述一個簡單工廠模式的實現。

function myMode(){} myMode.prototype = {create:function(){var mode = createmode.create(mode);mode.xxx();//可以對返回的mode執行任何你想要的操作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是否實現了后面的[xxx]方法,如果沒實現將拋出異常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');}} }

通過上面的代碼,便實現了簡單工廠模式。首先我們有一個myMode,他有一個create方法,這個方法將返回一個mode。

這個mode可以是任何對象。因為它是由一個外部單例所創造返回的mode。如果你想改變它,可以在外部單例里加入更多的case。

只要它實現了規定的接口,那么它就是符合的工廠模式的。是可以被myMode直接使用的。這一樣以來,就可以把所有的mode集中在一起管理。

想要添加或者更改mode也變得容易。好了,簡單工廠模式到此也就結束了。

下面是今天在某個群討論時,看到的一段對工廠模式的描述的比較好的話。便順手摘抄了下來

"后宮三千佳麗等待侍寢,大家都有名牌,一個太監把牌子拿上來,皇上翻,翻中一牌子給太監,太監去調這個女人(也許是男人),這個太監就相當于工廠,皇上給他參數,他根據參數去調用,但具體侍寢的事由后宮去實現,有的KJ,有的是XT,有的是TJ,有的是GJ,有的是XJ,各不相同"

不要問我那些字母代表什么意思,我想大家都懂的~~~~

不好意思,剛剛創建單例那里有點錯誤,已修正。

?

轉載于:https://www.cnblogs.com/lynxcat/archive/2012/04/11/2442691.html

總結

以上是生活随笔為你收集整理的javascript设计模式简单介绍之【工厂模式】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。