新东西019--MVC/MVP/MVVM
2018-01-18 11:06
253 查看
希望用简洁的语言说清楚
MVC
这是最基础的MVC模式,对应一个简单UML图
以上就是一个参考设计UML图,activity参考代码
//activity代码 public void updateData(){ BookModel bookModel = new BookModel(this); bookModel.getBookList(new BookModel.onBookListListener(){ @Override public void onSuccess(List<Book> list){ tvBookName.setText(……) } @Override public void onFailed(){ } }); }
整个项目结构图大多长这样
>activity LoginActivity HomeActivity >model LoginModel HomeModel
可以看出,这种写法代码结构会很清晰,有利于整个项目组统一风格。但有局限,因为在这个结构下,activity承担了太多职责,它的像Control控制Model,还的负责修改UI。基本占据了CV的角色,所有从MVC的角度来说没设计好,但却很好用。比较适合小团队内部使用,代码复用性会比较高,也很清晰。
MVP
MVP是MVC的一个变种,一个Android版本的改良,个人感觉它在上述MVC的基础上,将activity进行了细分。使用Presenter来替代activity处理逻辑,activity只要处理View的变更显示就好。简单UML图长这样
对应项目简单结构图
>login LoginActivity LoginPresenter IloginView >otherpage
如果项目特别大,想通过接口编程也可以设计成这样
>login >presenter ILoginPresenter LoginPresenterImp >view LoginActivity IloginView >otherpage
这种项目结构梗适合多人协作,将原来一个人一年的事拆成12个人一个月的活,相互之间大都通过页面区分,通过接口联系。耦合性降的很低,可以一个人写View,一个人写逻辑。但在使用的过程当中,因为块分的很细,所有复用需要更多的考虑,代码冗余会比较多。
MVVM
MVVM data-binding,将XML和activity绑定起来,但要熟悉data-binding的各种写法。而且windows版本使用data-binding有点不稳定,有时候重启androidstudio都不行,的重启电脑。这种架构别具一格,不过我没在真实项目中使用过,以后用到再补充。
相关文章推荐
- (转)MVC,MVP 和 MVVM 的图示
- iOS架构 - MVC/MVP/MVVM
- 理解MVC,MVP和MVVM设计模式
- MVC,MVP 和 MVVM 的大致概念。
- 【Android】【设计】Android 框架 MVC,MVP,MVVM
- Android产品研发(二十五)-->MVC/MVVM/MVP简单理解
- MVC,MVP 和 MVVM
- MVC vs. MVP vs. MVVM
- [翻译]MVP(SC),MVP(PV),PM,MVVM 和 MVC 表现模式架构对比
- 杂谈: MVC/MVP/MVVM (二)
- 浅谈开发中的MVVM模式及与MVP和MVC的区别
- MVC,MVP和MVVM的区别
- MVC , MVP , MVVM【转 阮一峰的网络日志】
- 理解MVC,MVP和MVVM设计模式
- MVC,MVP 和 MVVM 的图示
- MVC,MVP 和 MVVM
- MVC,MVP 和 MVVM 的图示
- Android App的设计架构:MVC,MVP,MVVM与架构经验谈
- MVC, MVP, MVVM比较以及区别-Android
- Android产品研发(二十五)-->MVC/MVVM/MVP简单理解