浅谈Android架构设计模式中MVC、MVP、MVVM

时间:2023-02-04 21:14:28

以下基于对三种模式已经熟悉所总结,不会介绍模式的基础概念,以下是自己结合其他人和自己实际开发中的经验对这些概念一些感悟。

  • Activity是V还是C

对于Activity属于V还是属于C这个问题,之前没有想明白,后来了解了一些IOS的概念,有了一些启发。

IOS中有明确的MVC架构。每个 xib 或 storybord 用来描述布局,相当于Android中的 xml ,对应V; ViewController 处理页面的逻辑,对应C;Android和IOS都没有定义M,需要开发者自己去实现。那么,Android中的C呢?Android中没有 ViewController ,其实就是 Activity 了,如IOS中 ViewController , Activity 同样响应V的各种触发事件。

  • X因素

M-V-X的本质是大同的,重点在于X作为桥梁来连通M、V来使得整个系统良好运转。X的模式之间的不同主要是所确定的M与V的数据传递流程不同。在我看来,流程的不同主要体现在:

传统的MVC中三者之间都有交互,View(界面)触发事件—>Controller(业务)处理了业务,然后触发了数据更新—>不知道谁更新了Model的数据—>Model(带着数据)回到了View—>View更新数据,形成闭环,这样关系维护略显复杂;

MVP则是使用P截断了M与V之间的联系,降低了复杂程度,指责结构简单明了;

MVVM则是不仅简化了业务与界面的依赖关系,还优化了数据频繁更新的解决方案,甚至可以说提供了一种有效的解决模式,但是这必须依赖于特有的情景,更多的是框架提供的一种能力,例如Android平台最近支持的[Data Binding。

  • 思考Data Binding


【关于我们】

每天名企社招内推微信众号ourpush),专注于国内各大互联网公司社会招聘内推。每天更新最新互联网名企(包括但不限于BAT网易小米京东乐视携程等名企)内推信息,有技术岗、有产品岗、有运营岗、有设计岗、有交互岗、有销售岗,更有其他N多相关岗位!更多内推信息请扫描以下二维码关注查阅。

浅谈Android架构设计模式中MVC、MVP、MVVM