原文鏈接:http://www.reibang.com/p/80354a279926
1休玩、組件化定義
將一個(gè)單一的工程分解為各個(gè)獨(dú)立的組件致份,然后按照某種方式任意組織成為一個(gè)擁有完整業(yè)務(wù)邏輯的工程
2、組件化產(chǎn)生的原因
- 耦合性嚴(yán)重
- 編譯速度慢
- 測試不獨(dú)立
- 無法使用自己擅長的設(shè)計(jì)模式
- 等等等
3指孤、組件化的優(yōu)勢
- 組件的獨(dú)立:可以獨(dú)立編譯和獨(dú)立測試
- 資源的重用
- 高效的迭代:增加或刪除某些模塊很便捷
- 拆分組件后,采用靜態(tài)庫涉兽、framework庫的形式二進(jìn)制化組件能夠大大提高項(xiàng)目的編譯速度
4叫胖、組件化應(yīng)該考慮的問題
組件的劃分:
1草冈、基礎(chǔ)組件:基本配置(常量、宏)、網(wǎng)絡(luò)框架封裝怎棱、工具類(日期時(shí)間處理哩俭、文件處理、設(shè)備信息等)拳恋、分類擴(kuò)展(個(gè)中系統(tǒng)類的擴(kuò)展)
2凡资、功能組件:常用控件(輪播器、選項(xiàng)菜單谬运、圖文菜單)隙赁、功能(斷點(diǎn)續(xù)傳、音頻處理等)
3梆暖、業(yè)務(wù)組件:業(yè)務(wù)線一(子業(yè)務(wù)線一伞访、子業(yè)務(wù)線二。式廷。。芭挽。)組件的層級關(guān)系:
0滑废、業(yè)務(wù)組件屬于基礎(chǔ)組件和功能組件的上一層級
1、基礎(chǔ)組件和功能組件屬于同一層級
2袜爪、功能組件不應(yīng)該依賴于基礎(chǔ)組件蠕趁,如果有用到基礎(chǔ)組件的代碼,建議直接拷貝一份到組件內(nèi)部
3辛馆、各組件內(nèi)部的組件之間也不應(yīng)該有依賴關(guān)系
4俺陋、在不產(chǎn)生引用關(guān)系的前提下如果要使用其他組件的內(nèi)容,應(yīng)該做好組件之間的通訊組件的存在形式
- 組件內(nèi)部:根據(jù)設(shè)計(jì)模式劃分文件夾結(jié)構(gòu)
- 組件形式(對外):每個(gè)組件都是以pod庫的形式存在
- 組件測試:單獨(dú)的測試工程(可以通過創(chuàng)建pod模板庫的形式)以Cocoapods的形式安裝各個(gè)組件
組件間的通訊
1昙篙、中間件的方式:項(xiàng)目創(chuàng)建一個(gè)中間件集成各種服務(wù)分離組件的難點(diǎn) — 解耦
1腊状、組件里面依賴其他公共功能:解決辦法copy
2、組件內(nèi)部需要對接某個(gè)服務(wù):使用block或者代理把這部分職責(zé)放給外部控制