內容一:MVP高階設計-第1步分析
第一點
分析策略樣式
定義:將我們的一系列演演算法,單獨封裝,並且每一個演演算法直接可以相互替換,盡可能減少修改原始碼。
第二點
策略樣式->角色劃分
規範角色:3個角色
角色一:策略介面
角色二:具體策略
角色三:策略管理器(策略背景關係)
變種:2個角色
角色一:策略介面
角色二:具體策略
代理樣式
角色一:標的介面
角色二:標的物件
特點:實現標的介面
角色三:代理物件
兩個特點
特點一:實現標的介面(忽略)
特點二:持有標的物件取用
第三點
策略樣式->案例->生活案例
加深,充分理解策略樣式->應用到MVP設計裡面(開發場景)
投資理財
支付寶->招財寶(存:10000元)
短期理財:6個月,年利率3%
贖回金額:10000 + 10000 * 0.03 / 12 * 6 = 10150
中期理財:12個月,年利率4%
贖回金額:10000 + 10000 * 0.04 / 12 * 12 = 10400
中長期理財:24個月,年利率4.5%
贖回金額:10000 + 10000 * 0.045 / 12 * 24 = 10900
有利網->定存寶(存:10000元)
定期3個月:年利率7%
贖回金額:10000 + 10000 * 0.07 / 12 * 3 = 10175
定期6個月:年利率8%
贖回金額:10000 + 10000 * 0.08 / 12 * 6 = 10400
定期12個月:年利率9.5%
贖回金額:10000 + 10000 * 0.095 / 12 * 12 = 10950
定期24個月:年利率10.5%
贖回金額:10000 + 10000 * 0.105 / 12 * 24 = 12100
第四點
接下來->轉換為程式程式碼
1、普通程式碼實現
2、策略樣式->實現
分析問題:因為在進行團隊的開發時候,需要處理非常複雜演演算法邏輯,每一種演演算法,都是相互獨立,各不幹擾,並且可以相互替換。
解決方案:策略樣式
角色一:策略介面->ILicai
角色二:具體策略->ZhaocaibaoLicai、DingcunbaoLicai
內容二:MVP高階設計-第2步分析
第一點
存在一種這樣的場景
LCE設計:一個專案每一個頁面會存在載入View,存在錯誤View,存在內容View。
LoadingView:載入過程提示(載入動畫)
載入動畫->進行設計->策略樣式
ErrorView:網路請求失敗,顯示介面
ContentView:顯示內容
第二點
MVP設計-最佳化-第1步
設計LCE動畫
角色劃分
角色一:策略介面->動畫策略介面->ILceAnimator
角色二:具體策略->動畫策略實現->DefaultLceAnimator
第三點
MVP設計-最佳化-第2步
搭建基於LCE-MVP設計框架
V層:MvpLceView
重點來啦:
代理樣式
標的介面:MvpLceView
標的物件:MvpLceViewImpl
代理物件:MvpLceActivity
為什麼搞一個代理?
因為Activity、Fragment、Layout都需要整合LCE設計,所以就會產生解析LoadingView、ContentView、ErrorView程式碼,這些程式碼都是相同的,所以會出現程式碼冗餘。為了能夠將這個程式碼進行高度抽象,所以採用代理樣式。
第四點
MVP設計-最佳化->第3步
代理一:生命週期代理
角色一:標的介面->FragmentMvpDelegate
角色二:標的物件->FragmentMvpDelegateImpl->抽象出生命週期
角色三:代理物件->MvpFragment
代理二:系結和解綁代理
角色一:標的介面->MvpCallback
角色二:標的物件->MvpFragment
角色三:代理物件->ProxyMvpCallback
總結LCE
LCE代理設計
標的介面:MvpLceView
標的物件:MvpLceViewImpl
代理物件:MvpLceActivity
內容三:福利時間到
掃描二維碼加入免費的Android分享群,不定期會有MVP架構設計,NDK音影片解碼Open GL,Open CV,AR等免費直播分享課。
長按識別二維碼
QQ群號: 153165745
如果你對程式員這份工作滿懷熱愛,如果你樂意走在技術的最前沿,不妨加入我們,一起邁向成為大神的道路吧!