成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

JS設計模式之責任鏈模式實例詳解-創(chuàng)新互聯(lián)

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

成都創(chuàng)新互聯(lián)公司網站建設公司一直秉承“誠信做人,踏實做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務為基礎,以質量求生存,以技術求發(fā)展,成交一個客戶多一個朋友!專注中小微企業(yè)官網定制,成都做網站、成都網站制作,塑造企業(yè)網絡形象打造互聯(lián)網企業(yè)效應。

責任鏈設計模式:

在責任鏈模式里,很多對象由每一個對象對其下家的引用而連接起來形成一條鏈。請求在這個鏈上傳遞,直到鏈上的某一個對象決定處理此請求。發(fā)出這個請求的客戶端并不知道鏈上的哪一個對象最終處理這個請求,這使得系統(tǒng)可以在不影響客戶端的情況下動態(tài)地重新組織和分配責任。

責任鏈模式涉及到的角色如下所示:

● 抽象處理者(Handler)角色:定義出一個處理請求的接口。如果需要,接口可以定義 出一個方法以設定和返回對下家的引用。這個角色通常由一個Java抽象類或者Java接口實現(xiàn)。上圖中Handler類的聚合關系給出了具體子類對下家的引用,抽象方法handleRequest()規(guī)范了子類處理請求的操作。

● 具體處理者(ConcreteHandler)角色:具體處理者接到請求后,可以選擇將請求處理掉,或者將請求傳給下家。由于具體處理者持有對下家的引用,因此,如果需要,具體處理者可以訪問下家。

JS設計模式之責任鏈模式實例詳解

在JS(ES6之前)中嚴格意義上是沒有extends繼承概念,所以以下代碼沒有模擬抽象類,代碼中只實現(xiàn)了具體處理類.

使用場景:在一個購物商城,在五一做了一個活動,所以圖書類商品根據(jù)購買的金額依次做出以下折扣方案,

1、購買滿199元,打9折
2、購買滿399元,打8折
3、購買滿599元以上,打7折;

責任鏈鏈的優(yōu)點:

請求發(fā)送者只需要知道鏈中的第一個節(jié)點,從而弱化了發(fā)送者和一組接收者之間的強聯(lián)系。如果不使用責任鏈鏈模式、根據(jù)當前價格客戶端要知道每一級打折信息,最后知道具體是那一層上打折才是符合當前價格的折扣。

function BookHandler() {
 this.calcPrice = function( price ) {
  if ( 199 > price ) {
   console.log("原價是:"+ price);
  } else {
   this.successor.calcPrice( price );
  }
 }
 this.setSuccessor = function( _successor ) {
  this.successor = _successor;
 }
}
function BookCalc9Handler( _successor ) {
 this.calcPrice = function( price ) {
  if ( 199 <= price && price < 399 ) {
   console.log("原價是:"+ price +";打9折后:" + (price * 0.9));
  } else {
   this.successor.calcPrice( price );
  }
 }
 this.setSuccessor = function( _successor ) {
  this.successor = _successor;
 }
}
function BookCalc8Handler() {
 this.calcPrice = function( price ) {
  if ( 399 <= price && price < 599 ) {
   console.log("原價是:"+ price +";打8折后:" + (price * 0.8));
  } else {
   this.successor.calcPrice( price )
  }
 }
 this.setSuccessor = function( _successor ) {
  this.successor = _successor;
 }
}
function BookCalc7Handler() {
 this.calcPrice = function( price ) {
  if ( price >= 599 ) {
   console.log("原價是:"+ price +";打7折后:" + (price * 0.7));
  } else {
   this.successor.calcPrice( price )
  }
 }
 this.setSuccessor = function( _successor ) {
  this.successor = _successor;
 }
}

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

網頁名稱:JS設計模式之責任鏈模式實例詳解-創(chuàng)新互聯(lián)
標題路徑:http://jinyejixie.com/article46/djegeg.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供面包屑導航、微信小程序、定制網站、品牌網站設計網站改版營銷型網站建設

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

手機網站建設
通城县| 文安县| 静宁县| 余庆县| 金沙县| 通河县| 安庆市| 内黄县| 衡南县| 普定县| 天全县| 若尔盖县| 锦州市| 南皮县| 维西| 维西| 南乐县| 罗源县| 正镶白旗| 绿春县| 双桥区| 乌兰察布市| 威宁| 理塘县| 惠来县| 含山县| 商南县| 闽清县| 醴陵市| 子长县| 喀喇| 北安市| 九江市| 莱西市| 桃江县| 固始县| 恩施市| 正安县| 防城港市| 称多县| 北宁市|