日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線(xiàn)咨詢(xún)客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

實(shí)際開(kāi)發(fā)過(guò)程中,一個(gè)系統(tǒng)會(huì)出現(xiàn)一個(gè)服務(wù)可能有N多個(gè)地方會(huì)需要使用,這個(gè)時(shí)候我們就會(huì)需要去將服務(wù)封裝成一個(gè)公共的Class,但是倘若封裝的不夠完美,那么這個(gè)服務(wù)Class也將成為系統(tǒng)的雞肋。下面我說(shuō)的封裝的思路,對(duì)于前段和后端開(kāi)發(fā)都適合。

封裝的原則

1、能夠解決95%~99%的系統(tǒng)場(chǎng)景(也就是除了解決現(xiàn)在的問(wèn)題,還能夠支持將來(lái)可能出現(xiàn)的問(wèn)題)

2、體現(xiàn)自己的核心處理能力(核心能力基本上不會(huì)去改變)

3、當(dāng)服務(wù)改變或者升級(jí)時(shí),對(duì)于老的調(diào)用方無(wú)感知,能夠做到無(wú)需調(diào)整

封裝的核心

代碼封裝技巧和原則

 

舉個(gè)生活中的栗子

生活中存在很多電器設(shè)備,每個(gè)電器設(shè)備都需要使用電,而且每個(gè)電器都會(huì)有插頭,通過(guò)插頭插入插線(xiàn)板,那么機(jī)器就可以運(yùn)轉(zhuǎn)。下面做個(gè)名詞的對(duì)應(yīng):

調(diào)用方:電熨斗(三眼插頭)、電視機(jī)(兩眼插頭)

服務(wù)方:供電設(shè)備

核心能力:供電

Handler:家里的插座

電熨斗和電視機(jī)需要運(yùn)轉(zhuǎn),就需要用到電器設(shè)備,而電器設(shè)備里面的Handler就是插座,電器設(shè)備的核心能力就是供電。由于調(diào)用方出現(xiàn)了不同的插頭類(lèi)型,所以插座的出現(xiàn)就是為了解決兼容的問(wèn)題。插座的主要作用就是自身設(shè)計(jì)了兩種傳參——兩眼插孔和三眼插孔,不同的設(shè)備接入對(duì)應(yīng)的插孔,這樣就可以享受到供電的服務(wù)。

問(wèn)題1:如果出現(xiàn)四眼插頭的設(shè)備怎么辦?

回答:我們要做的其實(shí)就是新增一個(gè)對(duì)于四眼插頭的支持,也就是對(duì)應(yīng)的新增一個(gè)四眼插孔,這樣對(duì)于老設(shè)備來(lái)說(shuō)無(wú)需任何調(diào)整,仍然可以毫無(wú)影響的在原來(lái)的插座上享受供電服務(wù)。

問(wèn)題2:如果出現(xiàn)供電升級(jí)怎么辦?

回答:供電設(shè)備內(nèi)部硬件升級(jí),做到對(duì)于老設(shè)備的0影響。比如電壓由220V變成了280V,如果供電設(shè)備不做調(diào)整,那么對(duì)于老的設(shè)備來(lái)說(shuō)可能直接會(huì)被高電壓燒毀。但是如果你要去設(shè)備自身調(diào)整成適配280V電壓,那么無(wú)疑是一個(gè)巨大的工作量。

舉個(gè)前端開(kāi)發(fā)中的栗子

調(diào)用方:A頁(yè)面,數(shù)據(jù)包結(jié)構(gòu)A;B頁(yè)面,數(shù)據(jù)包結(jié)構(gòu)B

服務(wù)方:級(jí)聯(lián)插件

核心能力:級(jí)聯(lián)

Handler:數(shù)據(jù)包處理

var _Plugin = {

open: function(args) {

//實(shí)現(xiàn)級(jí)聯(lián)功能

}

}

由于A頁(yè)面和B頁(yè)面都使用到了級(jí)聯(lián)插件,但是各自傳參數(shù)據(jù)包都不一樣。所以我們?cè)诜庋b插件時(shí),就需要考慮將差異化做到插件內(nèi)部去處理。針對(duì)單個(gè)業(yè)務(wù)場(chǎng)景來(lái)說(shuō),既然要做到區(qū)分,我們就需要利用一個(gè)字段來(lái)處理,常用的手段是定義一個(gè)type傳參,值類(lèi)型為數(shù)字,不同的數(shù)字代表不同的數(shù)據(jù)包;其次定義傳入的數(shù)據(jù)包的key,一般來(lái)說(shuō)為了方便識(shí)別,key的命名就定義為data。所以上面的open方法的傳參設(shè)計(jì)例如:

var args = {

type: 1, //區(qū)分業(yè)務(wù)場(chǎng)景

data: {}, //傳入的數(shù)據(jù)

}

問(wèn)題1:如果出現(xiàn)C頁(yè)面,傳入C數(shù)據(jù)包怎么辦?

回答:type值多加一個(gè)用于區(qū)分C頁(yè)面的調(diào)用。

問(wèn)題2:級(jí)聯(lián)插件更改怎么辦?

回答:根據(jù)新的插件要求,內(nèi)部做處理。比如原來(lái)的插件需要dt_1這樣的數(shù)據(jù)結(jié)構(gòu),但是新的插件需要dt_2這樣的數(shù)據(jù)結(jié)構(gòu),那么就在內(nèi)部將原來(lái)的A、B.....處理成dt_2數(shù)據(jù)包結(jié)構(gòu)

問(wèn)題3:A、B數(shù)據(jù)包可以直接利用,但是C數(shù)據(jù)包不行,怎么辦?

回答:內(nèi)部將C處理成需要的數(shù)據(jù)結(jié)構(gòu)

問(wèn)題4:已經(jīng)有N個(gè)頁(yè)面調(diào)用了open方法,但是為了滿(mǎn)足更多業(yè)務(wù)場(chǎng)景,需要對(duì)open的傳參做調(diào)整,怎么辦?

回答:利用方法重載的思路進(jìn)行內(nèi)部方法的改造,比如創(chuàng)建一個(gè)新方法open_new,它的傳參是按照新的要求設(shè)計(jì)的,那么對(duì)于老的頁(yè)面都在調(diào)用open方法,我們就必須將open的內(nèi)部實(shí)現(xiàn)做調(diào)整,比如:

var _Plugin = {

open: function(args) {

//對(duì)args做處理,生成新的傳參argsNew

 

args --> argsNew

 

open_new(argsNew);

},

open_new: function(argsNew) {

//實(shí)現(xiàn)級(jí)聯(lián)功能

}

}

分享到:
標(biāo)簽:封裝 代碼
用戶(hù)無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定