架构浅谈之 MVC

Posted 信1805-1王正帅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了架构浅谈之 MVC相关的知识,希望对你有一定的参考价值。

架构的重要性不言而喻,但是架构有一条原则:千万不要过度设计!

三层架构分别是:表示层、业务层、数据访问层。

三层架构是一种软件领域最普遍的分层式架构,而 MVC 是在三层架构的基础上设计的一种框架型架构,三层架构是一种宏观的概念,而 MVC 就是一种比较具体的三层架构的框架实现,我们在 MVC 的基础上把不同类别的代码文件进行分类就可以了,所以他们之间的关系可以用下图来表示:

其实 android 开发本身默认的就是一套 MVC 实现。 

View 层:Android 开发中的 xml 布局就是我们的 View 层,默认情况下也建议 View 都尽量用 xml 实现,当然对于一些复杂的就需要我们自定义 View 了,自定义 View 同样也是属于 View 层,只不过大多数时候还是 xml 布局用的最多;

 

Controller 层:毫无疑问,Android 默认也给我们提供了 Controller,就是 Activity & Fragment,仔细想想,是不是用户的交互事件,如输入、点击、滑动等都是在 Activity、Fragment 中处理的?关于这点有人认为 Activity & Fragment 属于 View 层,这个我是不认可的,View 应该专注界面的显示,Controller 处理用户的交互,提供给 View 需要的数据,从而让 View 正确的显示出来,而这都是 Activity & Fragment 的工作。

 

Model 层:Android 中对 View 与 Controller 有了定义,其实没有对 Model 层做定义,而大部分架构都不会对 Model 层做定义,因为 Model 本身是跟业务相关,针对不同的业务模型,定义需要的数据模型与实体类,以及相关的业务逻辑处理,虽然 Android 没有明确定义 Model 层,但是我们在开发中都会定义一个专门的 model  package 用来统一管理所有的 model 文件,如 User、Order、Chat 等。

 

 

 

三层架构是一种软件领域最普遍的分层式架构,而 MVC 是在三层架构的基础上设计的一种框架型架构,三层架构是一种宏观的概念,而 MVC 就是一种比较具体的三层架构的框架实现,我们在 MVC 的基础上把不同类别的代码文件进行分类就可以了,所以他们之间的关系可以用下图来表示:

 

 

 

 

以上是关于架构浅谈之 MVC的主要内容,如果未能解决你的问题,请参考以下文章

浅谈三层架构MVC之间的关系

iOS架构补完计划--浅谈架构模式(MVC/MVVM)

浅谈Javaweb经典三层架构和MVC框架模式

浅谈Java Web经典三层架构和MVC框架模式

浅谈三层架构

浅谈MVCMVPMVVM架构模式的区别和联系