



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、詳解JavaScript實現(xiàn)設(shè)計模式中的適配器模式的方法_ 適配器模式可以依據(jù)需求轉(zhuǎn)換(或調(diào)整)一個接口,創(chuàng)建含有您所需接口的另一個對象,并將它連接到您想轉(zhuǎn)變接口的對象,從而完成這種轉(zhuǎn)換,下面就來詳解JavaScript實現(xiàn)設(shè)計模式中的適配器模式的方法 有的時候在開發(fā)過程中,我們會發(fā)覺,客戶端需要的接口和供應(yīng)的接口發(fā)生不兼容的問題。由于特別的緣由我們無法修改客戶端接口。在這種狀況下,我們需要適配現(xiàn)有接口和不兼容的類,這就要提到適配器模式。通過適配器,我們可以在不用修改舊代碼的狀況下也能用法它們,這就是適配器的力量。 適配模式可用來在現(xiàn)有接口和不兼容的類之間進(jìn)行適配,用法這種模式的對象又叫包裝器
2、(wrapper),由于它們是在用一個新的接口包裝另一個對象。 從表面上看,適配器模式很像外觀模式。它們都要對別的對象進(jìn)行包裝并轉(zhuǎn)變其呈現(xiàn)的接口。二者的差別在于它們?nèi)绾无D(zhuǎn)變接口。外觀元素呈現(xiàn)的是一個簡化的接口,它并不供應(yīng)額外的選擇,而且有時為了便利完成常見任務(wù)它還會做出一些假定。而適配器則要把一個接口轉(zhuǎn)換為另一個接口,它并不會濾除某些力量,也不會簡化接口。假如客戶系統(tǒng)API不行用,就需要用到適配器。 基本理論 適配器模式:將一個接口轉(zhuǎn)換成客戶端需要的接口而不需要去修改客戶端代碼,使得不兼容的代碼可以一起工作。 適配器主要有3個角色組成: (1)客戶端:調(diào)用接口的類 (2)適配器:用來連接客戶端
3、接口和供應(yīng)服務(wù)的接口的類 (3)適配者:供應(yīng)服務(wù),但是卻與客戶端接口需求不兼容服務(wù)類。 適配器模式的實現(xiàn) 1.最簡潔的適配器 適配器模式?jīng)]有想象中的那么簡單,舉個最簡潔的例子。 客戶端調(diào)用一個方法進(jìn)行加法計算: var result = add(1,2); 但是我們沒有供應(yīng)add這個方法,供應(yīng)了同樣類似功能的sum方法: function sum(v1,v2) return v1 + v2; 為了避開修改客戶端和服務(wù)端,我們增加一個包裝函數(shù): function add (v1,v2) reutrn sum(v1,v2); 這就是一個最簡潔的適配器模式,我們在兩個不兼容的接口之間添加一個包裝方法
4、,用這個方法來連接二者使其共同工作。 2.實際應(yīng)用 隨著前端框架的進(jìn)展,越來越多的開發(fā)者開頭用法MVVM框架進(jìn)行開發(fā),只需要操作數(shù)據(jù)而不需要操作DOM元素,jQuery的作用越來越少。而許多項目中還是引用著jQuery庫作用工具類,由于我們要利用jQuery供應(yīng)的ajax去服務(wù)器懇求數(shù)據(jù)。假如jQuery在項目中的作用僅僅是作為ajax工具庫的話,有點殺雞焉用牛刀的感覺,造成資源鋪張。這個時候我們完全可以封裝一個自己的ajax庫。 假設(shè)我們封裝的ajax就通過一個函數(shù)進(jìn)行用法: ajax( url:/getData, type:Post, dataType:json, data: id:123
5、 ) .done(function() 除了調(diào)用接口ajax與jQuery的$.ajax的不同,其他完全一樣。 項目中懇求ajax的地方必定許多,我們替換jQuery的時候不行能一個一個去修改$.ajax,那怎么辦呢,這個時候,我們就可以增加一個適配器: var $ = ajax:function (options) return ajax(options); 這樣就能兼容舊代碼和新接口,避開對已有的代碼的修改。 總結(jié) 適配器模式的原理很簡潔,就是新增一個包裝類,對新的接口進(jìn)行包裝以適應(yīng)舊代碼的調(diào)用,避開修改接口和調(diào)用代碼。 適用場景:存在較多代碼調(diào)用舊接口,為了避開修改舊代碼和更換新接口,不影響現(xiàn)有實現(xiàn)方式的應(yīng)用場景。 1.適配器模式的適用場合: 適配器適用于客戶系統(tǒng)期盼的接口與現(xiàn)有API供應(yīng)的接口不兼容這種場合。適配器所適配的兩個方法執(zhí)行的應(yīng)當(dāng)是類似的任務(wù),否則的話就解決不了問題。就像橋接元素和外觀元素一樣,通過創(chuàng)建適配器,可以把抽象與其實現(xiàn)隔離開來,以便二者獨立改變。 2.適配器模式之利: 用一個新的接口對現(xiàn)有類的接口進(jìn)行包裝,這樣客戶程序就能用法這個并非為其量身打造的類而又無需為此大動手術(shù)。 3.設(shè)配器模式之弊: 有人認(rèn)為適配器是一種不必要的開銷,完全可以通過重寫現(xiàn)有代碼避開
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司與民工承包合同樣本
- 眾籌會員合同樣本
- 農(nóng)村隔壁關(guān)系合同標(biāo)準(zhǔn)文本
- 公司加工承攬合同樣本
- 關(guān)于配送安裝合同標(biāo)準(zhǔn)文本
- 分切加工轉(zhuǎn)讓合同標(biāo)準(zhǔn)文本
- 冷庫安裝施工合同范例
- 個人專利轉(zhuǎn)讓合同標(biāo)準(zhǔn)文本
- 農(nóng)業(yè)帶建設(shè)合同樣本
- 農(nóng)戶貸款合同標(biāo)準(zhǔn)文本
- 老舊城市燃?xì)夤艿栏赂脑旃こ淘O(shè)計方案
- 安徽省天一大聯(lián)考2025屆高三3月調(diào)研考試語文含答案
- 中醫(yī)經(jīng)典臨證思維與實踐知到課后答案智慧樹章節(jié)測試答案2025年春浙江中醫(yī)藥大學(xué)
- 2025年江蘇信息職業(yè)技術(shù)學(xué)院單招職業(yè)傾向性測試題庫參考答案
- 2025年深圳市高三年級第一次調(diào)研考試英語(含答案)
- 動火和受限空間作業(yè)監(jiān)護人考試題有答案
- 《高頻電子技術(shù)》5振幅調(diào)制解調(diào)與混頻電路
- 老年肺炎臨床診斷與治療專家共識解讀(2025年)解讀課件
- 制藥廢水處理工藝
- 2025年晉城職業(yè)技術(shù)學(xué)院高職單招數(shù)學(xué)歷年(2016-2024)頻考點試題含答案解析
- 2024高職單招考試(語文)試題(附答案)人人文庫
評論
0/150
提交評論