MVC架构模式

MVC架构模式(模型-视图-控制器模式

       MVC最初是在Smaltalk_80中被用来构建用户界面的。M代表模型Model,V代表视图View,C代表控制器Controller。

       通过把职责、性质相近的成分归结在一起,不相近的进行隔离,MVC将系统分解为模型、视图、控制器三部分,每一部分都相对独立,职责单一,在实现过程中可以专注于自身的核心逻辑。MVC是对系统复杂性的一种合理的梳理与切分,它的思想实质就是“关注点分离”。

       MVC的目的是增加代码的重用率,减少数据表达、数据描述和应用操作的耦合度。同时也使得软件可维护性、可修复性、可扩展性,灵活性以及封装性大大提高。

       Model模型层,可以简单理解就是数据层,用于提供数据。在项目中,(简单理解)一般把数据访问和操作,比如将对象关系映射这样的代码作为Model层,也就是对数据库的操作这一些列的代码作为Model层。比如代码中我们会写DAO类型的代码,这个DAO可以理解为是属于Model层的代码。

       View视图层,就是UI界面,功能是与用户进行交互。一般所有的JSP、Html等页面就是View层。

       Controller控制层,Controller层的功能就是将Model和View层进行关联。比如View主要是显示数据的,但是数据又需要Model去访问,这样的话,View会先告诉Controller,然后Controller再告诉Model,Model请求完数据之后,再告诉View。




 

       很多人都很容易把MVC和三层架构模式混淆,但其实两者有很大的区别。

       三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:

       表现层(UI):展现给用户的界面

       业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理

       数据访问层(DAL)::该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等

       严格来说MVC(Model-View-Controller)三个加起来以后才是三层架构中的UI层,也就是说,MVC把三层架构中的UI层再度进行了分化,分成了控制器、视图、实体三个部分,控制器完成页面逻辑,通过实体来与界面层完成通话;而C层直接与三层中的BLL进行对话。


 

       MVC是表现层的架构,MVC的Model实际上是ViewModel,即供View进行展示的数据。 ViewModel不包含业务逻辑,也不包含数据读取。 而在N层架构中,一般还会有一个Model层,用来与数据库的表相对应,也就是所谓ORM中的O。这个Model可能是POCO,也可能是包含一些验证逻辑的实体类,一般也不包含数据读取。进行数据读取的是数据访问层。而作为UI层的MVC一般不直接操作数据访问层,中间会有一个业务逻辑层封装业务逻辑、调用数据访问层。UI层(Controller)通过业务逻辑层来得到数据(Model),并进行封装(ViewModel),然后选择相应的View。

 

      

posted @ 2018-05-21 20:26  发酸的丶牛奶  阅读(137)  评论(0编辑  收藏  举报