为什么封装架构
新入职一家公司,代码比较乱,基本上都是在Activity中发起网络请求,同样的代码写很多次;同样的功能,在不同的地方,实现很多次,刚好自己也没有封装架构的经验,趁这次机会学习一下,然后记录
选择架构 (MVP+ViewModel)
是MVP,因为MVC的确已经用的差不多了,MVVM自己由不会,MVP属于自己知道一点,没实践过,所以就决定是MVP了。
第三方库的选择
因为原项目中已经使用了很多库,而且很多形成了强耦合,所以这次重构也是基于这些第三方库来实现的,基本都是比较新的库
第三方依赖
- Retrofit
- OKHttp
- RxJava
- Glide
- Greendao
- Protobuf
遇到的问题
- 在封装Presenter(父类,Base)的时候,一直在想如何让使用者调用的时候更方便,导致父类封装了大量的无关的代码,比如实现第一次请求,将View层的方法,在请求的时候,直接使用;结果在子类实现父类的时候,大量方法很难被实现。
- 在封装BaseModel的时候,不知道如何下手,不知道如何封装,目前这个点还卡着,仔细想想
- 分不清 View 和 Presenter的关系
思考
- Presenter的作用
- View的作用
- MVP的具体关系
网友评论