歡迎光臨
每天分享高質量文章

MVP專案框架搭建-高階設計

內容一: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  

如果你對程式員這份工作滿懷熱愛,如果你樂意走在技術的最前沿,不妨加入我們,一起邁向成為大神的道路吧!

贊(0)

分享創造快樂