框架架構(gòu)
框架架構(gòu)主要是為了以下幾點:
1 模塊化
2 分層
3 解耦
4 降低代碼重合度
客戶端整體架構(gòu)
1 獨立于App的通用層 (時長,崩潰坑资,網(wǎng)絡(luò)第三方庫)
2 通用業(yè)務(wù)層(通用基礎(chǔ)組件轧钓,特殊UIImageView封裝)
3 中間層(用于解耦)
4 業(yè)務(wù)A趋箩、業(yè)務(wù)B妒貌、業(yè)務(wù)C
意義:單獨拿出一個業(yè)務(wù)钞瀑,都可以形成一個App
業(yè)務(wù)之間解耦的通信方式?
1 openUrl
2 依賴注入(通過遵循協(xié)議)
復雜頁面架構(gòu)
View: 控件初始化励幼,設(shè)置數(shù)據(jù)欢策,交互事件代理
ViewController: 視圖創(chuàng)建組合、協(xié)調(diào)邏輯赏淌、事件回調(diào)處理
ViewModel:業(yè)務(wù)邏輯層、數(shù)據(jù)增刪改查封裝者啄清、線程安全處理
Engine : 增刪改查六水、網(wǎng)絡(luò)請求、數(shù)據(jù)解析辣卒、本地處理邏輯
圖片緩存
圖片緩存框架設(shè)計
圖片讀寫流程
內(nèi)存設(shè)計問題
1存儲size :10kb以下50張荣茫,100kb以下20張想帅,100kb以上10張
2 淘汰策略 :隊列先進先出方式淘汰。LRU算法-最近最久未使用算法(如30分鐘之內(nèi)是否使用過)啡莉。1定時檢查 2 每次進行讀寫港准、前后臺切換。(注意開銷2優(yōu)先 )
磁盤設(shè)計問題
1 存儲方式
2 大小限制(100M)
3 淘汰策略(超過7天)
網(wǎng)絡(luò)設(shè)計需要考慮問題咧欣?
1 圖片最大并發(fā)量
2 請求超時策略
3 請求優(yōu)先級
圖片解碼浅缸?
對不同格式的圖片,解碼采用什么方式來做魄咕?
應(yīng)用策略模式對不同圖片進行解碼
在哪個階段進行圖片解碼衩椒?
磁盤讀取之后, 網(wǎng)絡(luò)請求返回后知牌。