MVC和三层架构的区别

MVC

       MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
M 代表 模型(Model)
       模型就是数据,就是 dao,bean
       模型是应用程序中用于处理应用程序数据逻辑的部分。
通常模型对象负责在数据库中存取数据。
V 代表 视图(View)
       视图就是网页, JSP,用来展示模型中的数据
       视图是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的。
C 代表 控制器(controller)
       控制器的作用就是把不同的数据(Model),显示在不同的视图(View)上,Servlet 扮演的就是这样的角色。
       控制器是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。MVC和三层架构的区别

优点:
1、耦合性低
2、重用性高
3、生命周期成本低
4、部署快
5、可维护性高
6、有利软件工程化管理

三层架构

       三层架构就是为了符合“高内聚,低耦合”思想,把各个功能模块划分为表示层(UI)、业务逻辑层(BLL)和数据访问层(DAL)三层架构,各层之间采用接口相互访问,并通过对象模型的实体类(Model)作为数据传递的载体,不同的对象模型的实体类一般对应于数据库的不同表,实体类的属性与数据库表的字段名一致。
表示层(UI)
       位于三层构架的最上层,与用户直接接触,主要是 B/S 信息系统中的 Wed 浏览页面。作为 Wed 浏览页面,表示层的主要功能是实现系统数据的传入与输出,在此过程中不需要借助逻辑判断操作就可以将数据传送到 BBL 系统中进行数据处理,处理后会将处理结果反馈到表示层中。换句话说,表示层就是实现用户界面功能,将用户的需求传达和反馈,并用 BLL 或者是 Models 进行调试,保证用户体验。
业务逻辑层(BLL)
       对具体问题进行逻辑判断与执行操作,接收到表现层 UI 的用户指令后,会连接数据访问层 DAL,访问层在三层构架中位于表示层与数据层中间位置,同时也是表示层与数据层的桥梁,实现三层之间的数据连接和指令传达,可以对接收数据进行逻辑处理,实现数据的修改、获取、删除等功能,并将处理结果反馈到表示层 UI 中,实现软件功能。
数据访问层(DAL)
       是数据库的主要操控系统,实现数据的增加、删除、修改、查询等操作,并将操作结果反馈到业务逻辑层 BBL。在实际运行的过程中,数据访问层没有逻辑判断能力,为了实现代码编写的严谨性,提高代码阅读程度,一般软件开发人员会在该层中编写 Data AccessCommon,保证数据访问层 DAL 数据处理功能。
MVC和三层架构的区别
优点:
1、高内聚、低耦合,可以降低层与层之间的依赖。
2、各层互相独立,完成自己该完成的任务,项目可以多人同时开发,开发人员可以只关注整个结构中的其中某一层。
3、容易移植、维护,如 B / S 转 C / S、SQLServer 转 Oracle、添加、修改、删除等。
4、有利于标准化。
5、有利于各层逻辑的复用。
6、安全性高。用户端只能通过业务逻辑层来调用数据访问层,减少了入口点,把很多危险的系统功能都屏蔽了。

区别

1、三层是基于业务逻辑来分的,而MVC是基于页面来分的
2、三层是种软件架构,通过接口实现编程;MVC模式是一种复合设计模式,一种解决方案
3、三层模式是体系结构模式,MVC是设计模式
4、三层模式又可归于部署模式,MVC可归于表示模式
MVC和三层架构的区别