1、经典三层架构和MVC的关系?
他们是两个毫无相关的东西,经典三层架构是一种分层思想,将开发模式分为了这三层,每个人根据自己的专长,开发不同的模块,比如,前端工程师,那么就专研表示层即可,想办法如何让页面变的更好看,如何吸引别人,而有些专门做数据库工作的人,就可以只关注操作数据库的活,如何让查询更加快速有效,而不必关注数据该如何显示这种问题。这就是分层带来的巨大好处。
而MVC是一种设计模式,目的是让HTML代码和业务逻辑代码分开,让代码看起来更加清晰,便于开发。
硬说他们有关系的话,只能说他们有共同的点,分层,解耦。
MVC的目的则是实现Web系统的职能分工,即职责划分。 其实职责划分也是解耦,但是三层侧重的是整体的一个解耦,而MVC侧重的是web系统的解耦,即侧重jsp和Servlet的一个解耦。
之所以说MVC和三层毫无关系,是因为它们二者使用范围不同:三层可以应用于任何语言、任何技术的应用程序;而MVC只是为了解决BS应用程序视图层各部分的耦合关系。它们互不冲突,可以同时存在,也可根据情况使用其中一种。
如果硬要给他们对应的话,那么三层架构中的UI对应MVC中的view(jsp),都是用于显示以及获取界面的数据;三层架构中的BLL层和DAL层对应MVC中的Model(javabean)层都是用于处理上层传递来的数据以及从数据库获取的数据的;MVC中的Controller(Servlet)最多算是三层架构中的UI的一部分,也就我们常说的是Servlet。
在三层中也提到了Model,但是三层架构中Model的概念与MVC中Model的概念是不一样的,“三层”中典型的Model层是以实体类构成的,而MVC里,则是由业务逻辑与访问数据组成的。
我们一般是在考虑使用(也可以不使用)了三层架构的基础上再根据具体需求决定是否需要使用MVC,于是我们常说的MVC中总 是伴随着三层架构,所以大家总是会认为MVC就是三层架构,三层架构就是MVC,殊不知,它们二者是一起出现的
我们通常所见到的MVC一般也都是在应用三层架构的基础上,即将Model层再进行分层。而如果Model不再进行划分的话,那么 使用MVC的意义也就不大了。
2、实际项目中的包命名结构,其也是按照三层架构思想来进行编写代码的,
xxx:代表公司名称 yyy:代表项目名称
com.xxx.yyy.dao.impl dao层实现
com.xxx.yyy.service service层接口
com.xxx.yyy.service.impl service层实现
com.xxx.yyy.web web层
com.xxx.yyy.util 工具包
com.xxx.yyy.domain javabean
3、为了体现这个三层架构,会做一个小的用户管理系统。比较简单的,使用一下三层架构的思想。
简单的增删改查
功能分析:注册、登录、查询所有用户、查询详情、修改用户信息、删除用户
技术分析:JSP(JSTL、EL)、Servlet、MySQL、javabean、三层架构思想