国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

NodeJS設計模式總結【單例模式,適配器模式,裝飾模式,觀察者模式

2024-05-06 15:27:07
字體:
來源:轉載
供稿:網友

本文實例講述了NodeJS設計模式。分享給大家供大家參考,具體如下:

1 . 單例模式

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

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

2. 適配器模式

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

/*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();//重寫的內容    adapteeObj.specialRequest();  }}util.inherits(Adapter, Target);//通過繼承原模塊, 獲得原接口module.exports = Adapter;

3. 裝飾模式

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 沛县| 泽库县| 习水县| 怀远县| 宣城市| 五华县| 翁牛特旗| 永修县| 康定县| 尚义县| 蓬莱市| 尼勒克县| 襄汾县| 老河口市| 扎囊县| 中江县| 武冈市| 武城县| 连城县| 金华市| 唐海县| 宁南县| 临朐县| 治县。| 南部县| 兰州市| 额济纳旗| 嘉禾县| 古交市| 景德镇市| 浏阳市| 沁阳市| 卫辉市| 云林县| 隆尧县| 五华县| 子洲县| 铁力市| 富顺县| 昂仁县| 合阳县|