什么是MVC?
下面是MVC的基本流程图
下面是MVC的详细流程图
再来具体看android中的MVC的实现的整个流程
MVC的缺点
什么是MVP?
下面是一个简单的登录的MVP的流程图
由上面的图可见,P层起到非常重要的地位,他是一个中间者,起到承上启下的作用,再从这个图里面可以更形象的来说MVP,举个例子说明,老板要做一件事情,他会先跟产品经理说我要做这个XXX事情,产品经理先初步审核一下老板提的需求,如果觉得哪里不对,反馈给老板。老板做出修改,产品经理拿到老板的合理的需求之后,去找程序员,找ui评审,程序员把需求做好,反馈到产品经理这来,产品经理把结果汇总再去跟老板汇报。产品经理就像这个p层,做资源的整合,协调等相关工作。
我们再开看看MVP的缺点是什么?
这个流程图展示了一个单向的、强制性的准备工作链条。哪怕业务逻辑非常简单(如显示一条数据),MVP 的架构规则也要求你必须完整地走完每一步:定义接口、实现接口、建立绑定关系。这大量与核心业务无关的样板代码,使得开发过程显得繁琐和臃肿,降低了开发效率。
还有个最大的问题就是所有的内存释放都要手动去处理,在开发中不可避免的会遗漏,就会造成内存泄漏。
什么是MVVM?
那么我们如何将项目中的string文件自动帮我我们生成excel,生成的excel的目的就是为了给产品去翻译。
上面这个截图扫描之后再干什么了?
从上面的图可以看出ViewMode是一个中间层
MVVM 通过引入 ViewModel 这一中间层,并利用数据绑定和命令机制,实现了 View 和 Model 的彻底解耦。数据流是双向且自动的:View 的变动自动反映到 ViewModel,ViewModel 的状态变化也自动推送到 View,而 ViewModel 则负责与 Model 进行协调。这个模式极大地提高了前端应用程序的可维护性、可测试性和开发效率。
结合livedata lifecycle 达到生命周期感知能力的架构体现,帮助我们自动回收和释放内存,从而达到性能优化的目的,这边博客不会去细讲怎么通过具体的代码去演示相关操作
其实选择MVVM是架构的进化与演变,其实一个大型项目,是多种架构综合体现一个产物,不能说MVC,MVP一定不好,对于一些较为复杂的项目,我们依然可以以MVVM为主导,mvc或者mvp为辅助,构建出合理的和可维护性的项目。
所有评论(0)