成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

轉(zhuǎn)換插座之適配器模式

MudOnTire / 1177人閱讀

摘要:適配器模式之?dāng)?shù)據(jù)格式轉(zhuǎn)換適配器模式不僅可以起到適配接口名的作用,它另外還有一個(gè)功能就是能統(tǒng)一不同格式的作用。我們的目的就是在程序中,不要出現(xiàn)適配器模式,但考慮到實(shí)際,這也是不可能的,所以盡量將代碼設(shè)計(jì)符合規(guī)范是非常必要的。

這個(gè)模式應(yīng)該算是除了單例模式以外最簡單的一個(gè)模式,沒有多余的類,這個(gè)模式只有一個(gè)職責(zé),就是轉(zhuǎn)換的你接口參數(shù),歸一化接口調(diào)用函數(shù),同意參數(shù)格式。
說人話~
其實(shí)就是,將不同東西,加上同一個(gè)包裝。
而這個(gè)模式,我們應(yīng)該早熟悉了。
在命令模式的中,有這樣一段代碼:

//封裝命令
var MoveUp = function(exer){
    this.exer = exer;
}
MoveUp.prototype.do = function(){
    this.exer.moveUP();
}
var MoveDown = function(exer){
    this.exer = exer;
}
MoveDown.prototype.do = function(){
    this.exer.moveDown();
}
var MoveLeft = function(exer){
    this.exer = exer;
}
MoveLeft.prototype.do = function(){
    this.exer.moveLeft();
}
var MoveRight = function(exer){
    this.exer = exer;
}

在不同的命令中,我們使用類將原本接口不一致的命令適配為同一個(gè)接口的函數(shù)。而適配器的精華就體現(xiàn)在這里,要知道,他和代理模式一樣,只起到一個(gè)中間層的作用,實(shí)質(zhì)上并不會改變一個(gè)整體架構(gòu)。 而我們大費(fèi)周章的將他列為一個(gè)模式是很有代理的。因?yàn)樵趯?shí)際開發(fā)當(dāng)中,我們必定會使用到一些第三方的API,有時(shí)候leader高瞻遠(yuǎn)矚往往會使用多個(gè)相同功能的 不同提供商的 API(是不是傻啊~). 現(xiàn)實(shí)是,這些提供商的API要么名字不一樣,要么參數(shù)不統(tǒng)一,但是必須要用,那就可以使用適配器模式來進(jìn)行轉(zhuǎn)化。
比如一個(gè)調(diào) "評論模塊" 的API
多說里面是. DS.comment().
Disqus的是. DQ.commentary().
(上面是我意淫的接口)
首先,leader的要求是,一開始使用多說的評論。(鬼信啊,萬一以后你又用Disqus,那我還怎么過年)
我們這里可以使用適配器模式給自己留一條后路

var _disqus = {  //disqus評論插件
    comment(){
        disqus.commentary();
    }
}
var _DS = {  //多說評論插件
    comment(){
        DS.comment();
    }
}
var command = function(comment){
    comment.comment();
}
//使用多說的評論
command(_DS);

以后萬一leader不爽多說了,想換,你也是輕而易舉的。

適配器模式之?dāng)?shù)據(jù)格式轉(zhuǎn)換

適配器模式不僅可以起到適配接口名的作用,它另外還有一個(gè)功能就是能統(tǒng)一不同格式的作用。
在某個(gè)接口中,使用的數(shù)據(jù)格式是這樣的。

[{
    name:"sam",
    year:12,
    gender:"male"
}]

但是由于后臺SB的不準(zhǔn)守文檔,使用了這樣的格式。

{
    sam: {
        year: 12,
        gender: "male"
    },
    ...
}

但是,你的js已經(jīng)按照文檔的要求完成了任務(wù)標(biāo)準(zhǔn),而此時(shí),后臺已經(jīng)把后臺接口寫好了,估計(jì)現(xiàn)在度假去了。沒辦法,只有改動了,現(xiàn)在有兩種選擇,一種是直接破壞你原來寫好的程序邏輯,還有一種是使用適配器模式直接改寫。
我的話,我會選擇,適!配!器!模!式!
我們可以自定義一個(gè)格式轉(zhuǎn)化類

var json = {
    sam: {
        year: 12,
        gender: "male"
    },
    jimmy:{
        year:22,
        gender:"female"
    }
}
function adaption(para){
    var keys = Object.keys(para),
        obj = [];
    for(var i = 0,temp,key; key = keys[i++];){
        temp = para[key];
        temp.name = key;
        obj.push(temp);
    }
    return obj;
}
console.log(adaption(json));

然后在參數(shù)傳遞過程中,直接使用adaption以后的數(shù)據(jù)就可以了。

大話適配器模式

由于適配器是作為彌補(bǔ)的一種手段,而不是作為一開始代碼設(shè)計(jì)的原則,所以,大家在代碼構(gòu)思的時(shí)候盡量將接口實(shí)現(xiàn)統(tǒng)一這才是最棒的模式。 我們的目的就是在程序中,不要出現(xiàn)適配器模式,但考慮到實(shí)際,這也是不可能的,所以盡量將代碼設(shè)計(jì)符合規(guī)范是非常必要的。
ending~

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/78545.html

相關(guān)文章

  • 慕課網(wǎng)_《模式的秘密配器模式》學(xué)習(xí)總結(jié)

    摘要:時(shí)間年月日星期二說明本文部分內(nèi)容均來自慕課網(wǎng)。慕課網(wǎng)教學(xué)源碼學(xué)習(xí)源碼第一章適配器模式的簡介簡介生活中的適配器翻譯軟件插座適配器適配器模式定義適配器模式講將一個(gè)類的接口,轉(zhuǎn)換成客戶期望的另外一個(gè)接口。 時(shí)間:2017年08月29日星期二說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)源碼:https://github.com/zccodere/s.....

    andong777 評論0 收藏0
  • 設(shè)計(jì)模式配器模式

    摘要:定義和類型定義將一個(gè)類的接口轉(zhuǎn)換成客戶期望的另一個(gè)接口,適配器模式讓那些不兼容的類可以一起工作。類型結(jié)構(gòu)型類適配器模式類適配器模式使用繼承的方式去實(shí)現(xiàn)接口適配。它是適配器模式的核心。 0x01.定義和類型 定義:將一個(gè)類的接口轉(zhuǎn)換成客戶期望的另一個(gè)接口,適配器模式讓那些不兼容的類可以一起工作。 類型:結(jié)構(gòu)型 a.類適配器模式 類適配器模式:使用繼承的方式去實(shí)現(xiàn)接口適配。 UML:...

    booster 評論0 收藏0
  • 一天一個(gè)設(shè)計(jì)模式JS實(shí)現(xiàn)——配器模式

    摘要:本文參考于設(shè)計(jì)模式課程設(shè)計(jì)模式之適配器模式設(shè)計(jì)模式是一套被反復(fù)使用的多數(shù)人知曉的經(jīng)過分類編目的代碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié)。第一個(gè)設(shè)計(jì)模式是適配器模式??偟膩碚f適配器就是的模式,與修飾模式直接無感使用不同,適配器模式使用對象變?yōu)椤? 本文參考于:設(shè)計(jì)模式課程設(shè)計(jì)模式之適配器模式 設(shè)計(jì)模式是一套被反復(fù)使用的、多數(shù)人知曉的、經(jīng)過分類編目的、代碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié)。使用設(shè)計(jì)模式是為了重用代碼、讓代碼更容易被...

    Aceyclee 評論0 收藏0
  • 開發(fā)路(設(shè)計(jì)模式七:配器模式

    摘要:你眼中的適配器是什么樣子的呢在設(shè)計(jì)模式中也有模式叫適配器模式,一起來看看吧。定義適配器模式將一個(gè)類的接口,轉(zhuǎn)換成客戶期待的另一個(gè)接口。 你眼中的適配器是什么樣子的呢?在設(shè)計(jì)模式中也有模式叫適配器模式,一起來看看吧。 適配器是什么這不需要作者我多解釋把,打個(gè)比方,在國內(nèi)用的是220V的電器,但國外有些國家是110V甚至240V的也有等等,國內(nèi)的充電線就不能直接插國外的插...

    solocoder 評論0 收藏0
  • 配器設(shè)計(jì)模式(應(yīng)用于活動業(yè)務(wù))

    摘要:適配器的適用場景代碼的復(fù)用性強(qiáng)??蛻舳耸褂媚繕?biāo)接口,與和目標(biāo)接口一致的對象合作。被適配者一個(gè)現(xiàn)存需要適配的接口。適配器負(fù)責(zé)將的接口轉(zhuǎn)換為的接口。適配器是一個(gè)具體的類,這是該模式的核心。適配器分為類適配器和對象適配器兩種,下面將詳細(xì)講述。 適配器的適用場景 代碼的復(fù)用性強(qiáng)。 我們一直在使用適配器,如果 只有USB連接頭,無法將手機(jī)插到標(biāo)準(zhǔn)的插座上面充電 ,這時(shí)需要的一個(gè)適配器,一端接U...

    sunnyxd 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<