蘇州小(xiǎo)程序開(kāi)發指出我們都(dōu)知(zhī)道(dào)軟件(jiàn)開(kāi)發✔₩的(de)幾個(gè)基本要(yào)素,比如(r↕☆ú):封裝就(jiù)是(shì)其中之一(yī♠↓σ)。我們看(kàn)下(xià)封裝的(de)定義:隐藏對(duì)象的(de)屬性和(hé)實現✘≥ε≤(xiàn)細節,僅對(duì)外(wài)提$$供公共訪問(wèn)方式。這(zhè)是(shì)面向對¥☆(duì)象編程中的(de)一(yī)個(gè)特點,很(hě←¥φ₽n)多(duō)人(rén)可(kě)能(néng)$©不(bù)懂(dǒng)後端編程,隻了(le)解前端,所以光(guāng)從(cón♥≥g)字面上(shàng)可(kě)能(néng)不(bù)太好(hǎo)理(lǐ)解。
可(kě)能(néng)有(yǒu)人(rén)會(huì)問(wèn),前端的(↔£§de)開(kāi)發怎麽會(huì)用(yòng)到(dà₹¥•o)封裝呢(ne)?
前端開(kāi)發也(yě)是(shì) ∑®屬于軟件(jiàn)開(kāi)發的(de)一§$&∞(yī)個(gè)分(fēn)支,軟件(ji ←àn)開(kāi)發追求的(de)是(shì)代碼的(de)高(gāo)效、可(kě)複用πλ≠(yòng)性、易維護、容易擴展。說(shuō)概念可(kě)能(nén¥→↓g)還(hái)是(shì)比較抽象,我們将通(tōng)過具體(tǐ)的( →>≥de)代碼例子(zǐ)來(lái)闡述,看(kàn)代碼&₽:
上(shàng)面我們封裝了(le)兩個(gè)微(wēi)信小(xiǎo)程序api方法,wx♦↑÷φ.request() 和(hé) wx.showTo§∏∏§ast(), 有(yǒu)人(rén)會(huì)問(wèn),這(zhπ∏∞è)麽做(zuò)有(yǒu)什(shén)麽好(hǎo)處呢(ne)?
我們先來(lái)看(kàn)wx.request()方♦∏☆法,這(zhè)是(shì)微(wēi)信小(xiǎo)程序的(de→≥)系統方法,隻要(yào)進行(xíng)數(shù)據交互就(ji✘©ù)必然要(yào)使用(yòng),也(yě)就(jiù)是(shì)使用(yòng)✔ππ¶頻(pín)次非常高(gāo),如(rú£÷÷")果不(bù)進行(xíng)封裝,是(s↓§ hì)不(bù)是(shì)每次調用(yòng)的(de)時(shí)候都(dōu)要(yào)≠β&✔把這(zhè)個(gè)方法重寫一(yī)次,假如(rú)後期≤Ω要(yào)對(duì)這(zhè)個(gè)請(qǐng)求方法添加一(yī)些(xiē)系統Ω↕≠參數(shù),是(shì)不(bù)是(shì)每個(gè∏&λ₩)調用(yòng)的(de)地(dì)方都(dōu)要(yào)找出來(lái)>≤™然後修改,是(shì)不(bù)是(shì)很(hěn)麻煩呢(ne)?我想你(nǐ)可(α♥₹kě)能(néng)已經看(kàn)出些(∏₽£xiē)端倪了(le),對(duì),沒錯(cuò),封裝了(le)這(zhè)個(g≈♥✔è)方法之後,我們隻要(yào)修改這(zhè)₽"←一(yī)個(gè)地(dì)方就(jiù)可(kě)以了(l$σ∑e),是(shì)不(bù)是(shì)節省了(le$λ)很(hěn)多(duō)時(shí)間(jiā£ ♣'n),節省下(xià)來(lái)的(de)時(shí)間(jiān)去(☆☆✘qù)喝(hē)杯咖啡不(bù)是(shì)更惬意嘛。∞&
封裝後的(de)方法如(rú)何調用(yòn≈≥g)呢(ne)?
這(zhè)個(gè)方法requestActi÷≤≠on()我們假設是(shì)放(fàng)在app.js中的(de),那(nà)麽調用(yò§σπng)的(de)時(shí)候 就(jiù)可(kě)以這(↑ zhè)樣getApp(). requestAction((‘…’); 或者 const < app = getApp(); app. reques≠≈tAction((‘…’); 因為(wèi)還(h®×ái)有(yǒu)些(xiē)參數(shù)要(yào)傳入,我們解釋下(xià)參≠ ↕λ數(shù)的(de)涵義。requestAction€✘γ≠:function (action_name, paγ©rams, callback,errCallb&↑✘ack) 本方法一(yī)共有(yǒu)個(gè)四個(gè)參數(shù),acσ&tion_name 是(shì)請(qǐng)求的(d↔§e)地(dì)址方法名稱(注意方法中已經包含了(le)h£±osturl),拼接在host後面組成完整的(de)請(qǐng)求url地¥←↔(dì)址;params是(shì)參數(shù)數(shù)組,c ≠∏allback是(shì)執行(xíng)正确結果調用(yòng)的(&'∞de)回調函數(shù),errCallback是(shì)執→$≠行(xíng)沒有(yǒu)期望結果時(shí)的(de)回調行(xín↓g)數(shù)。
另個(gè)封裝的(de)微(wēi)信小(xiǎo)程序的(<$ de)系統提示消息,調用(yòng)方法同上(shàng),getApp()®ε∑.toast ((‘…’); 或者 const app = g≈✘≥etApp(); app. toast (‘…’);
這(zhè)裡(lǐ)隻是(shì)舉了(le)兩個($÷•gè)例子(zǐ),其他(tā)的(de)基本可(kě)以參考這(zhè)種方式δ↔,有(yǒu)了(le)封裝,我們不(bù)用(yòng)做(zuò)代碼的(de)搬運工(✔∏>↕gōng),而是(shì)代碼的(de)設計(jì)者,布局代碼♣¥量更少(shǎo),後期維護起來(lái)也(yě)是(shì)非常方便,自(zì)然效率也(y♥♥ě)就(jiù)高(gāo)了(le)。這(zhè)也(yě)解≈¶釋了(le)我們開(kāi)頭提出的(de)問(wèn)題,
作(zuò)為(wèi)有(yǒu)多(duō)年(nián)開(kāi)發經驗的(de)資λ ★π深人(rén)士,哈哈 給自(zì)己帶個(gè)高(gāo㮣)帽,在開(kāi)發完成功能(néng)之前就(jiù)×♠會(huì)思考,我該如(rú)何設計(jì)?以後如(rú)果要(yào)修改✘♥怎麽辦?怎麽才能(néng)少(shǎo)些(xiē)代碼等©→等?
有(yǒu)了(le)本節的(de)介紹,我想接下(xià)來(lái)的(de)開(kāi)♣♥¥<發中會(huì)給你(nǐ)代理(lǐ)很≥↑✔☆(hěn)多(duō)愉快(kuài)的(d♥λα¥e)編程體(tǐ)驗。
既然标闆自(zì)己是(shì)資深人(rén)<★φ士,自(zì)然在寫代碼時(shí)要( ¥yào)體(tǐ)現(xiàn)“身(shēn)份”了(le),下(x∏λ™ ià)面我們将繼續介紹小(xiǎo)程序中的(de)高(gφ£āo)級應用(yòng)。
蘇公網安備 32059002004131号