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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Javascript设计模式理论与实战:适配器模式

發布時間:2024/4/15 java 70 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Javascript设计模式理论与实战:适配器模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

有的時候在開發過程中,我們會發現,客戶端需要的接口和提供的接口發生不兼容的問題。由于特殊的原因我們無法修改客戶端接口。在這種情況下,我們需要適配現有接口和不兼容的類,這就要提到適配器模式。通過適配器,我們可以在不用修改舊代碼的情況下也能使用它們,這就是適配器的能力。

基本理論

適配器模式:將一個接口轉換成客戶端需要的接口而不需要去修改客戶端代碼,使得不兼容的代碼可以一起工作。

適配器主要有3個角色組成:
(1)客戶端:調用接口的類
(2)適配器:用來連接客戶端接口和提供服務的接口的類
(3)適配者:提供服務,但是卻與客戶端接口需求不兼容服務類。

適配器模式的實現

最簡單的適配器

適配器模式沒有想象中的那么復雜,舉個最簡單的例子。
客戶端調用一個方法進行加法計算:

1 var result = add(1,2);

但是我們沒有提供add這個方法,提供了同樣類似功能的sum方法:

1 function sum(v1,v2){ 2 return v1 + v2; 3 }

為了避免修改客戶端和服務端,我們增加一個包裝函數:

1 function add (v1,v2){ 2 reutrn sum(v1,v2); 3 }

這就是一個最簡單的適配器模式,我們在兩個不兼容的接口之間添加一個包裝方法,用這個方法來連接二者使其共同工作。

實際應用

隨著前端框架的發展,越來越多的開發者開始使用MVVM框架進行開發,只需要操作數據而不需要操作DOM元素,jQuery的作用越來越少。而很多項目中還是引用著jQuery庫作用工具類,因為我們要利用jQuery提供的ajax去服務器請求數據。如果jQuery在項目中的作用僅僅是作為ajax工具庫的話,有點殺雞焉用牛刀的感覺,造成資源浪費。這個時候我們完全可以封裝一個自己的ajax庫。
假設我們封裝的ajax就通過一個函數進行使用:

1 ajax({ 2 url:'/getData', 3 type:'Post', 4 dataType:'json', 5 data:{ 6 id:"123" 7 } 8 }) 9 .done(function(){})

除了調用接口ajax與jQuery的$.ajax的不同,其他完全一樣。

項目中請求ajax的地方必然很多,我們替換jQuery的時候不可能一個一個去修改$.ajax,那怎么辦呢,這個時候,我們就可以增加一個適配器:

1 var $ = { 2 ajax:function (options){ 3 return ajax(options); 4 } 5 }

這樣就能兼容舊代碼和新接口,避免對已有的代碼的修改。

總結

適配器模式的原理很簡單,就是新增一個包裝類,對新的接口進行包裝以適應舊代碼的調用,避免修改接口和調用代碼。

適用場景:存在較多代碼調用舊接口,為了避免修改舊代碼和更換新接口,不影響現有實現方式的應用場景。

原文地址:http://luopq.com/2015/11/10/desgin-pattern-adapter/

轉載于:https://www.cnblogs.com/lrzw32/p/4954895.html

總結

以上是生活随笔為你收集整理的Javascript设计模式理论与实战:适配器模式的全部內容,希望文章能夠幫你解決所遇到的問題。

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