<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

        NodeJS設(shè)計(jì)模式總結(jié)【單例模式,適配器模式,裝飾模式,觀察者模式】

        來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 22:30:53
        文檔

        NodeJS設(shè)計(jì)模式總結(jié)【單例模式,適配器模式,裝飾模式,觀察者模式】

        NodeJS設(shè)計(jì)模式總結(jié)【單例模式,適配器模式,裝飾模式,觀察者模式】:本文實(shí)例講述了NodeJS設(shè)計(jì)模式。分享給大家供大家參考,具體如下: 1 . 單例模式 顧名思義,單例就是保證一個(gè)類只有一個(gè)實(shí)例,實(shí)現(xiàn)的方法是,先判斷實(shí)例是否存在,如果存在則直接返回,若不存在,則創(chuàng)建實(shí)例對象,并將實(shí)例對象保存在靜態(tài)變量中,當(dāng)下次請求時(shí)
        推薦度:
        導(dǎo)讀NodeJS設(shè)計(jì)模式總結(jié)【單例模式,適配器模式,裝飾模式,觀察者模式】:本文實(shí)例講述了NodeJS設(shè)計(jì)模式。分享給大家供大家參考,具體如下: 1 . 單例模式 顧名思義,單例就是保證一個(gè)類只有一個(gè)實(shí)例,實(shí)現(xiàn)的方法是,先判斷實(shí)例是否存在,如果存在則直接返回,若不存在,則創(chuàng)建實(shí)例對象,并將實(shí)例對象保存在靜態(tài)變量中,當(dāng)下次請求時(shí)

        本文實(shí)例講述了NodeJS設(shè)計(jì)模式。分享給大家供大家參考,具體如下:

        1 . 單例模式

        顧名思義,單例就是保證一個(gè)類只有一個(gè)實(shí)例,實(shí)現(xiàn)的方法是,先判斷實(shí)例是否存在,如果存在則直接返回,若不存在,則創(chuàng)建實(shí)例對象,并將實(shí)例對象保存在靜態(tài)變量中,當(dāng)下次請求時(shí),則可以直接返回這個(gè)對象實(shí)例,這就確保了一個(gè)類只有一個(gè)實(shí)例對象。舉個(gè)例子吧~一間學(xué)校剛剛起建還沒有圖書館,有的同學(xué)就向領(lǐng)導(dǎo)提意見:"hey! 哥們,能不能幫我們建一個(gè)圖書館? "(想要一個(gè)圖書館實(shí)例),然后領(lǐng)導(dǎo)說:"no problem啊!等我一下,馬上建給你"(實(shí)例還沒有建立,便創(chuàng)建一個(gè))。幾個(gè)月后,圖書館建好了~有位奇葩同學(xué)也想去圖書館,他卻向領(lǐng)導(dǎo)提出要求: "hey! 哥們,我想去圖書館,能不能幫我建一個(gè)?"然后領(lǐng)導(dǎo)說: "no problem個(gè)頭阿!那邊已經(jīng)建好了一個(gè),你去那間不就可以了嗎!"(當(dāng)實(shí)例已經(jīng)存在的時(shí)候,則直接返回已經(jīng)創(chuàng)建的實(shí)例)

        /*singleInstance.js*/
        var _instance = null;//定義初始化_instance
        module.exports = function(time){
         function Car(time){
         this.time = time;
         }
         this.getInstance = function(){
         if(_instance != null){
         return _instance;
         }else{
         return new Car(time);
         }
         }
        }
        
        

        2. 適配器模式

        若將一個(gè)類的接口轉(zhuǎn)換為客戶希望的另外一個(gè)接口,適配器模式可以使原本由于接口不兼容而不能一起工作的那些類可以一起工作。舉個(gè)例子吧~小明的老爸大明很愛喝白酒,但是呢喝酒又傷身,小明看到便不忍心,于是他想了方法:把白酒瓶子里面的酒倒掉,換成了白開水(重寫內(nèi)容)。大明看到還是那個(gè)酒瓶就沒太在意(接口沒有改變,只是內(nèi)容改變了),一口氣就把"酒"喝完了,還很高興~(此處假設(shè)大明智商比較低..)。因此支配器是一個(gè)既不得罪他人,也能達(dá)到自己目的的一個(gè)好方法~下面是具體的實(shí)現(xiàn)方法

        /*target.js*/
        module.exports = function(){
         this.request = function(){//原接口
         console.log('Target::request');
         }
        }
        
        
        /*adapter.js*/
        var util = require('util');
        var Target = require('./target.js');
        var Adaptee = require('./adaptee.js');
        function Adapter(){
         Target.call(this);
         this.request = function(){//重寫原接口
         var adapteeObj = new Adaptee();//重寫的內(nèi)容
         adapteeObj.specialRequest();
         }
        }
        util.inherits(Adapter, Target);//通過繼承原模塊, 獲得原接口
        module.exports = Adapter;
        
        

        3. 裝飾模式

        裝飾模式可以通過繼承的方式,為一個(gè)基類對象擴(kuò)展功能。舉個(gè)例子吧~一顆圣誕樹,一開始什么都沒有。然后Amy看到之后往樹上掛了幾個(gè)飾品(擴(kuò)展原來的基類),然后Billy路過之后,覺得它還差點(diǎn)什么,就把圣誕樹拿過來(繼承),然后也往上面放點(diǎn)其他飾品(繼續(xù)擴(kuò)展)。

        /*Base.js*/
        module.exports = function(){
         this.dosomething = function(){
         console.log("Nice to meet u.");
         }
        }
        
        
        /*Decorator.js*/
        var util = require("util);
        var Base = require('./Base');
        function Decorator(){
         Base.call(this);
         this.dosomething = function(){
         Base.dosomething();
         console.log('I am a decorator');//拓展內(nèi)容
         }
        }
        util.inherits(Decorator, Base);//繼承
        module.exports = Decorator;
        
        

        4. 觀察者模式

        什么是觀察者模式呢?舉個(gè)例子吧~小狗同學(xué)和小熊同學(xué)同時(shí)喜歡上了班里可愛的小兔同學(xué)。小狗和小熊都會注意著小兔的一舉一動,只有小兔有什么動靜他們兩個(gè)都會知道~相對而言呢,小狗和小熊就是小兔的"觀察者",而小兔呢就是"被觀察的對象"。比較重要的是:小兔發(fā)生的動靜(某個(gè)函數(shù)),會同時(shí)通知到觀察者小狗和小熊,讓他們兩個(gè)也會做出相應(yīng)的反饋(各自的回調(diào)函數(shù))

        /*被觀察者*/
        module.exports = function(){
         var m_obserSet = [];//觀察者列表
         var _self = this;
         this.addObser = function(observer){
         m_obserSet.push(observer);//添加觀察者
         }
         this.doAction = function(){
         console.log("Observable do some action");
         _self.notifyAllObeser();
         }
         this.notifyAllObeser = function(){//發(fā)生動作
         for(var key in m_obserSet){//逐個(gè)通知觀察者
         m_obserSet[key].update();//觀察者執(zhí)行回調(diào)
         }
         }
        }
        
        

        希望本文所述對大家nodejs程序設(shè)計(jì)有所幫助。

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        NodeJS設(shè)計(jì)模式總結(jié)【單例模式,適配器模式,裝飾模式,觀察者模式】

        NodeJS設(shè)計(jì)模式總結(jié)【單例模式,適配器模式,裝飾模式,觀察者模式】:本文實(shí)例講述了NodeJS設(shè)計(jì)模式。分享給大家供大家參考,具體如下: 1 . 單例模式 顧名思義,單例就是保證一個(gè)類只有一個(gè)實(shí)例,實(shí)現(xiàn)的方法是,先判斷實(shí)例是否存在,如果存在則直接返回,若不存在,則創(chuàng)建實(shí)例對象,并將實(shí)例對象保存在靜態(tài)變量中,當(dāng)下次請求時(shí)
        推薦度:
        • 熱門焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 国产中文在线亚洲精品官网| 成人一a毛片免费视频| 国产三级免费观看| 久久精品国产亚洲av麻豆蜜芽| 免费观看久久精彩视频| 亚洲综合精品香蕉久久网| 国产免费内射又粗又爽密桃视频| www.亚洲精品| 亚欧洲精品在线视频免费观看| 亚洲AV蜜桃永久无码精品| 羞羞视频免费观看| 亚洲精品无码99在线观看 | 国产18禁黄网站免费观看| 亚洲精华国产精华精华液好用 | 精品剧情v国产在免费线观看 | 成人伊人亚洲人综合网站222| 99re在线精品视频免费| 亚洲av无码一区二区乱子伦as| 四虎国产成人永久精品免费| 亚洲一级二级三级不卡| 99久久久精品免费观看国产| 欧洲 亚洲 国产图片综合| 全免费a级毛片免费**视频| 美女裸免费观看网站| 亚洲中文字幕无码爆乳AV| 99久久久国产精品免费牛牛四川| 亚洲精品人成电影网| 毛片免费全部免费观看| 男女男精品网站免费观看| 亚洲熟妇无码乱子AV电影| 91香蕉在线观看免费高清| 亚洲va久久久久| 亚洲国产成人久久笫一页| 日本三级在线观看免费| 亚洲中文无码线在线观看| 国产成人涩涩涩视频在线观看免费| jizz在线免费观看| 亚洲第一网站免费视频| 免费欧洲毛片A级视频无风险| 国产午夜精品免费一区二区三区 | 亚洲人色婷婷成人网站在线观看|