真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

ios業(yè)務(wù)組件化開發(fā),iOS 組件化開發(fā)

【iOS開發(fā)工程化——開發(fā)中】:三層架構(gòu),MVC、MVVM

上一篇我們說到組件化開發(fā)是一個App最大一層的架構(gòu),那具體到了一個一個的業(yè)務(wù)組件里,比組件化開發(fā)小一點(diǎn)的架構(gòu)就是三層架構(gòu)。所謂三層架構(gòu)就是指把項(xiàng)目中所有的類劃分到不同的層,目的是使項(xiàng)目邏輯更加清晰,提升開發(fā)和維護(hù)的效率,我們一般會把項(xiàng)目分為三層:數(shù)據(jù)層、業(yè)務(wù)層、視圖層。

創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),陵水黎族企業(yè)網(wǎng)站建設(shè),陵水黎族品牌網(wǎng)站建設(shè),網(wǎng)站定制,陵水黎族網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,陵水黎族網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

注意:嚴(yán)格來講,三層架構(gòu)并不真正就比組件化開發(fā)小,它們倆只是從不同的角度去做架構(gòu)而已,往往是相互融合的,比如組件化開發(fā)里網(wǎng)絡(luò)庫就是三層架構(gòu)里數(shù)據(jù)層的內(nèi)容,UI庫就是三層架構(gòu)里視圖層里的內(nèi)容等,這里之所以說“三層架構(gòu)是比組件化開發(fā)小一點(diǎn)的架構(gòu),主要是針對業(yè)務(wù)組件來說的”,當(dāng)然甚至我們在不使用組件化開發(fā)時項(xiàng)目里依然可以使用三層架構(gòu)。

比三層架構(gòu)再小一點(diǎn)的架構(gòu)就是視圖層架構(gòu),我們常說的MVC、MVVM都是?視圖層的架構(gòu)。

MVC,即Model-View-Controller,它們的關(guān)系如下:

MVVM,即Model-View-ViewModel,它們的關(guān)系如下:

iOS組件化開發(fā)· 什么是組件化

組件化編程的關(guān)鍵目的是為了將程序模塊化,使各個模塊之間可以單獨(dú)開發(fā),單獨(dú)測試。當(dāng)然,隨之而來的版本問題也必須要解決,防止出現(xiàn)不兼容的組件版本破壞程序的穩(wěn)定性。

ios 組件化方案對比

目前iOS組件化方案主要有三種;

在啟動時,注冊組件提供的服務(wù)(注冊URL以及關(guān)聯(lián)服務(wù)Block),然后在使用時,通過URL直接調(diào)用(openURL);

通過Protocol定義服務(wù)接口,組件通過實(shí)現(xiàn)該接口來提供服務(wù),最終的實(shí)現(xiàn)就是將Protocol和Class映射在一起,同時在內(nèi)存中保存一張映射表,使用的時候,通過Protocol去獲取Class對應(yīng)的服務(wù)。

Target Action這個方案是基于ObjC 的runtime、category 特性動態(tài)獲取模塊,例如通過NSClassFromString 獲取類并創(chuàng)建實(shí)例,通過 performSelector + NSInvocation動態(tài)調(diào)用方法。

首先每個模塊需要配置Target和Category,其中Target是每個組件對應(yīng)一個或者多個Target,Category是中間層Mediator的分類,使用分類的目的是為了讓Mediator的業(yè)務(wù)代碼分離,從而降低Mediator中的依賴和耦合性。

那么中間層Mediator是如何找到并調(diào)用組件的呢?這里正是利用了runtime的反射機(jī)制,在Category中找到對應(yīng)Target以及調(diào)用Target對應(yīng)的Action。

CTMediator 正是采用的Target Action方案,巧妙的使用了cocoaTouch提供的反射機(jī)制,方法簽名與命令模式,簡單又完美的解決了組件間的解耦問題。

iOS多工程架構(gòu)(二)—— 組件化

解釋

推送分為2種情況,一個是私有庫的推送,例如公司自己的gitLabel;第二個是公有庫,例如前面的GitHub

pod組件就完成了,下一篇開始主項(xiàng)目跟組件的交流


當(dāng)前名稱:ios業(yè)務(wù)組件化開發(fā),iOS 組件化開發(fā)
文章網(wǎng)址:http://weahome.cn/article/dsesoej.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部