赞
踩
内容一: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
内容三
想要成为技术大神
往下看
↓↓
MVP架构设计
免费技术分享直播课
10月9号晚上8:30
报名方式
扫描二维码加入专属学习群
腾讯课堂Android研究院高级讲师
Dream老师
原360手机安全卫士开发工程师,同时兼任360手机安全卫士Andorid、iOS开发项目架构。
在架构设计方面有独特认知,擅长C/C++底层开发,平台兼容性处理,性能优化,OpenCV/OpenGL/Unity3D,同时在VR/AR以及智能安防领域有非常深入研究。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。