MVC架构模式的理解和运用

MVC简介

MVC相信大家都再熟悉不过

  • M对应Model,代表业务数据
  • V对应View,代表视图
  • C对应Controller,代表控制器


    MVC架构模式的理解和运用_第1张图片
    image.png

    MVC架构将视图和数据分离,在WEB领域中应用的很广泛。
    用户通过界面组件进行操作,也就是View层,相应的动作会传递给控制器也就是Controller层,而Controller根据自己的业务逻辑去操作数据层也就是Model,而最终数据层的变化会同步更新到视图层。

MVC好处

这里直接引用百度百科

MVC 分层有助于管理复杂的应用程序,因为您可以在一个时间内专门关注一个方面。例如,您可以在不依赖业务逻辑的情况下专注于视图设计。同时也让应用程序的测试更加容易。
MVC 分层同时也简化了分组开发。不同的开发人员可同时开发视图、控制器逻辑和业务逻辑。

可以看到MVC的主要目的是为了视图和数据分离,这对于开发大型软件来说更方便进行模块的划分,提高编码速度与质量。

Android中的MVC

Android中也经常运用到MVC模式。
Activity对应视图界面也就是View层。
数据库文件,Sharedprefrence,内存缓冲,磁盘缓冲等数据内容对应Model层。
而Controller控制层基本上也由Activity层面来进行。

Android中mvc中基本动作流程

假设我们现在有这么一个需求,需要在一个界面上显示当天的天气,不仅如此,还可以通过列表项选择以往某一天的天气。
mvc架构开发的话,大概是这样。

在layout制定相应的布局文件,然后显示在Activity上,用于显示天气信息。这对应于View层
Activity在onCreate方法或者onResume方法去服务器获取数据,或者通过界面上的某个按钮之类去启动获取服务器数据的任务,这里就对应到View—>Controller,只不过这里的View和Controller对是由Activity来完成。
Controller获取到了数据之后,分别存在,内存、磁盘和数据库中,并且数据获取成功或者失败后,Activity界面需要同步更新状态。这由对应上面流程中的Controller—>Model 和Model—->View。
是的MVC是挺好的,但是它也有它的缺点,特别是针对Androi开发。
因为Android的特殊性,使得Activity对应了MVC中的V和C,同时担任两个角色,就有了类似“既当爹又当妈”的感觉,这显然就不符合软件设计原则的“单一职责”原则。但现实中是很多的APP代码中有这么的处境,特别是Androi原生的很多系统APK,某些Activity动则几千行代码。

你可能感兴趣的:(MVC架构模式的理解和运用)