蘇州小(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)方式。這(z≠ΩΩ≥hè)是(shì)面向對(duì)象編程中的(de)一(yī)個(g∏$è)特點,很(hěn)多(duō)人(rén)可(kě)能(néng)不(bù)懂(dǒng)後端φ∑編程,隻了(le)解前端,所以光(guāng)從(cóng)字面上(shàn↑α↓g)可(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éng)還(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.showToast(), 有(yǒu)人(rε<±$én)會(huì)問(wèn),這(zhè)麽做(zσδ↓uò)有(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ù)據交互就(jσ≤iù)必然要(yào)使用(yòng),也(yě)就(jiù→☆&≈)是(shì)使用(yòng)頻(pín)次非常高(gāo),如(rú)果不(bù)進行(xín★&®g)封裝,是(shì)不(bù)是(shì)每次調用(yòngΩφ×∑)的(de)時(shí)候都(dōu)要(yào)把這(zα§hè)個(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)這(zδ™™hè)個(gè)方法之後,我們隻要(yào)修改這(zhè)一βε×(yī)個(gè)地(dì)方就(jiù)可(kě)以了(le),是(sh←♥↑§ì)不(bù)是(shì)節省了(le)很(hěn)多(duō)時(shí)間λ✘(jiān),節省下(xià)來(lái)的(de)時(shí)間(jiā↕∞<n)去(qù)喝(hē)杯咖啡不(bù)是(shì)更惬意嘛。
封裝後的(de)方法如(rú)何調用(yòng)呢(☆∑♦ ne)?
這(zhè)個(gè)方法requestAction()我們假設是(shì♠®)放(fàng)在app.js中的(de),那(nà)麽調用∞∞(yòng)的(de)時(shí)候 就(jiù)可(kě)以這(zhè± )樣getApp(). requestAction((‘…’♣≈); 或者 const app = getApp(₩§); app. requestAction((‘…’↔ ®); 因為(wèi)還(hái)有(yǒu)些(π ÷xiē)參數(shù)要(yào)傳入,我們解釋下(xià<π)參數(shù)的(de)涵義。requestAction:function (a™ction_name, params, callbac<k,errCallback) 本方法一(yī)共有(y↕∑ǒu)個(gè)四個(gè)參數(shù),action_★βφ≈name 是(shì)請(qǐng)求的(de)地(dì)址★ 方法名稱(注意方法中已經包含了(le)hosturl),拼接在host後面組成完整的(♦γ&de)請(qǐng)求url地(dì)址;params是(shì)參數(shù)數(shù)組,c• §λallback是(shì)執行(xíng)正确結§¶σ果調用(yòng)的(de)回調函數(shù),e₽σ₽rrCallback是(shì)執行(xíng)沒有(yǒu)期望結果時(shí) "γ的(de)回調行(xíng)數(shù)。
另個(gè)封裝的(de)微(wēi)信小(xiǎo)程序的(de)系統提示消€±™"息,調用(yòng)方法同上(shàng),getApp()¥.toast ((‘…’); 或者 const app = getAp$®∞p(); app. toast (‘…’);
這(zhè)裡(lǐ)隻是(shì)舉了(le)兩個(gè)例子(zǐ)↔↕•,其他(tā)的(de)基本可(kě)以參©σ"≈考這(zhè)種方式,有(yǒu)了(le)封裝,我們不(bù)用(yòng)做(zβ £≥uò)代碼的(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≥♥)的(de)編程體(tǐ)驗。
既然标闆自(zì)己是(shì)資深人(rén)士,自(©§♣zì)然在寫代碼時(shí)要(yào)體(tǐ)現(xiàn)“身(shēn)≈✔×份”了(le),下(xià)面我們将繼續介紹小(xiǎo)程序中δ ₹的(de)高(gāo)級應用(yòng)。
蘇公網安備 32059002004131号