三层架构
- 三层架构由以下部分组成:
- 界面层(UI)
- 业务逻辑层(BLL)
- 数据访问层(DAL)
- 从整个应用程序架构的角度来分的三层(如果程序需要,还可以分多层)。
- 三层是为了解决整个应用程序中各个业务操作过程中不同阶段的代码封装的问题,为了使程序员更加专注的处理某阶段的业务逻辑。
比如将数据库操作代码封装到一层中,提供一些方法根据参数直接返回用户需要的相应数据,这样在处理具体的业务逻辑的时候,就不用关心数据的存储问题了。
MVC
- MVC由以下部分组成:
- 模型层(Model)
- 界面层(View)
- 控制层(Controller)
- MVC 主要是为了解决应用程序用户界面的样式替换问题,把展示数据的 HTML 页面尽可能的和业务代码分离。MVC把纯净的界面展示逻辑(用户界面)独立到一些文件中(Views),把一些和用户交互的程序逻辑(Controller)单独放在一些文件中,在 Views 和 Controller 中传递数据使用一些专门封装数据的实体对象,这些对象,统称为Models。
MVC 图一:
MVC 图二:
- 图一和图二的区别:
- 图一:View可以使用Model的模型并调用Model的部分接口
- 优点:View可以复用Model的数据模型类
- 缺点:隔离性不够强,View的开发需要依赖Model的部分工作
- 图二:将View与Model完全隔离,View另外定义针对View的数据模型类,Controller负责将Model的数据模型类转换成View的数据模型类
- 优点:隔离性更强,可以分层开发,分层测试
- 缺点:Model、View会存在很多相似的数据模型类
- 图一:View可以使用Model的模型并调用Model的部分接口
三层架构与MVC的区别与关系
- 二者使用范围不同,MVC和三层毫无关系:
- 三层可以应用于任何语言、任何技术的应用程序,是最基本的项目分层结构;
- MVC是为了解决BS应用程序视图层各部分的耦合关系,是三层架构的一个变体,MVC是一种好的开发模式,我们可以用它来创建在域对象和UI表示层对象之间的区分;
- 三层架构中的BLL层和DAL层对应MVC中的Model(javabean)层都是用于处理上层传递来的数据以及从数据库获取的数据的,MVC中的Controller(Servlet)最多算是三层架构中的UI的一部分,也就我们常说的是Servlet
- 三层架构与MVC合并:
- 分层
- View(UI)
- Controller
- BIZ(BLL)
- DAO(DAL)
- Entity(Model)
- MVC 把 BIZ(BLL)、DAO(DAL)、Model(Entity) 统一称之为模型(MODEL),得到:View、Controller、 模型(MODEL) ;
三层架构 在我使用中暂未体会到控制器的存在,完全是:UI、DAO、BLL - 三层是基于业务逻辑来分的,而MVC是基于页面来分的
- 分层
- 优点&缺点
- 优点
- 低耦合性
- 高重用性和可适用性
- 较低的生命周期成本
- 快速的部署
- 可维护性
- 有利于软件工程化管理
- 缺点
- 内部结构复杂,不容易理解
- 文件数量大,管理难度自然也就大
- 优点