封裝,即隱藏對(duì)象的屬性和實(shí)現(xiàn)細(xì)節(jié),僅對(duì)外公開(kāi)接口。
封裝的目的是增強(qiáng)安全性和簡(jiǎn)化編程,使用者不必了解具體的實(shí)現(xiàn)細(xì)節(jié),而只是要通過(guò)外部接口,以特定的訪問(wèn)權(quán)限來(lái)使用類(lèi)的成員
這個(gè)主題案例,我采用的是面向接口編程的寫(xiě)法,簡(jiǎn)單的說(shuō)就是將行為封裝分布在各個(gè)對(duì)象中,并讓這些對(duì)象自己各自負(fù)責(zé)自己的行為,這也是面向?qū)ο笤O(shè)計(jì)的一個(gè)優(yōu)點(diǎn)
就拿頁(yè)面切換的效果來(lái)說(shuō),在某一時(shí)刻,元素A需要讓頁(yè)面進(jìn)行切換,那么元素A不需要關(guān)心頁(yè)面是怎么切換的,它只能要調(diào)用到一個(gè)接口方法能讓頁(yè)面切換就行了
基于這樣的理論,我們就開(kāi)始改造一下頁(yè)面切換的零碎的代碼塊
頁(yè)面布局與切換是一個(gè)整體,我們想調(diào)用切換的時(shí)候,并不關(guān)心其內(nèi)部處理的手段,所以我們只需要提供一個(gè)可以調(diào)用的接口就可以,新建一個(gè)Swipe.js文件,內(nèi)部定義一個(gè)Swipe工廠方法,內(nèi)部會(huì)產(chǎn)生一個(gè)swipe的滑動(dòng)對(duì)象,暴露了scrollTo的接口
JavaScript中沒(méi)有抽象類(lèi)與接口的支持,所以很大程度上實(shí)現(xiàn)封裝都是靠閉包去模擬
具體我看看右邊代碼塊Swipe.js的實(shí)現(xiàn) 與index.html中調(diào)用
在31行填入相應(yīng)代碼,通過(guò)調(diào)用接口讓頁(yè)面滾動(dòng)
swipe.scrollTo($("#content").width() * 2, 5000);
請(qǐng)驗(yàn)證,完成請(qǐng)求
由于請(qǐng)求次數(shù)過(guò)多,請(qǐng)先驗(yàn)證,完成再次請(qǐng)求
打開(kāi)微信掃碼自動(dòng)綁定
綁定后可得到
使用 Ctrl+D 可將課程添加到書(shū)簽
舉報(bào)