重新认识 MVC 和 三层设计模式

重新认识 MVC 和 三层设计模式

首先不得不承认,身边有一群8年+工作经验的大牛就是爽,纠正了我一个认知上的错误

首先来看一下官方的解释:

MVC:
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
MVC图
三层架构设计模式:
1. 表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。
2. 业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。
3. 数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等。

我想说的是,因为老师夜以继日对我讲,MVC三层模式,从而导致我将这两个东西搞混了。所以现在我来重新理解下。

简单的说:
- MVC 是应用在三层架构模式中表现层里面的一种软件设计规范,它只存在于表现层,它不是一种架构设计规范!在表现层的设计还有 MVVM,MVP等,在这里的model,应该理解为viewModel,view就是web界面,controller则是页面请求的逻辑处理
- 三层架构设计是一种架构设计方案,相对来说理解起来比较简单,但需要注意的是,实体模型并不能算作是一个层

具体的理解画一个图吧

MVC 三层模式图解

然后稍微的说一下MVVM和MVP

MVVM: 主要用来做 WPF
MVP: MVP和MVC很像,但是有点区别。在MVP中View并不直接使用Model,它们之间的通信是通过Presenter (MVC中的Controller)来进行的,所有的交互都发生在Presenter内部,而在MVC中View会直接从Model中读取数据而不是通过 Controller。
在MVC里,View是可以直接访问Model的!从而,View里会包含Model信息,不可避免的还要包括一些业务逻辑。 在MVC模型里,更关注的Model的不变,而同时有多个对Model的不同显示,即View。所以,在MVC模型里,Model不依赖于View,但是View是依赖于Model的。不仅如此,因为有一些业务逻辑在View里实现了,导致要更改View也是比较困难的,至少那些业务逻辑是无法重用的。

其实今天还学了下 依赖注入的一些东西,很深奥,有空再说吧!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章