赞
踩
分层架构是运用最为广泛的架构模式,是指一种自动化测试代码的结构。这种结构的特点是将复杂的测试代码分成三个单向依赖的层次,采用分层结构构建的测试代码中的测试逻辑变得清晰,容易理解和维护。简而言之,在一个完整项目或者企业应用开发中,可将系统分为多个层,以便更好的开发。
经典架构中系统分为三层:自顶向下由用户界面层(也叫表现层)、业务逻辑层、持久层(也叫数据访问层)组成,这就是所谓的三层架构。
用户界面层(User Iterface layer):通俗来讲就是展示用户的界面,即用户在使用这个系统或者项目时能够直观看到的东西(比如一个界面里有什么文字或者图片),表现层的主流框架有SpringMVC、Struts、Tapestry、JSF等。此文主要介绍MVC架构。
业务逻辑层(Business Logic Layer):采用事务脚本模式。将一个业务中所有的操作封装成一个方法,同时保证方法中所有的数据库更新操作,即保证同时成功或同时失败。避免部分成功部分失败引起的数据混乱操作,这种模式下,业务逻辑由service+dao+贫血的业务对象POJO组成(此处的持久层是使用了JDBC规范)。Service封装表示层的请求,每个请求封装成service类的方法。对持久层的访问通过DAO。业务逻辑层主流框架有:Spring、SpringBoot等。
持久层(Data Access Layer):该层负责将业务层中的业务对象持久化到数据库中,即直接对数据库操作,针对数据的增添、删除、修改、查找等。持久层主流框架有:Hibernate、Lbatis、Mybatis等。注意:一些小型项目在持久层并未使用框架Mybatis,而是使用一种JDBC的封装的编写规范,使用的是DAO层。而Mybatis框架下的持久层接口对映的是xml映射文件。
经典三层架构:
MVC架构被广泛使用是因为其有助于将前端和后端代码差分为独立的组件(前后端分离),这样更便于管理,而且很方便的修改其中一个部分,另一部分不会受到影响。其定义如下:
Model称为模型,也就是实体类,用于数据的封装和数据的传输。
View为视图,也就是GUI组件,用于数据的展示。
Controlle为控制,也就是事件,用于流程的控制,其本质就是View层和Model层连接器。
这三层是紧密联系在一起的,但又是互相独立的,每一层内部的变化不影响其他层。每一层都对外提供接口(Interface),供上面一层调用。这样一来,软件就可以实现模块化,修改外观或者变更数据都不用修改其他层,大大方便了维护和升级。
业务逻辑层简称BLL,是系统架构中体现价值的部分,它是与系统所对应的领域逻辑有关,很多时候也将业务逻辑层称为领域层。它的位置很关键,处于持久层(数据访问层)与表示层之间,起到承上启下的作用。由于层与层之间是一种低耦合结构,它是向下依赖的,底层对于上层是“无知的”,这种依赖也应是低耦合的,理想的分层式架构是一个支持类似于“抽屉式”的架构,业务逻辑层的设计支持这种可扩展的架构尤为关键,换句话说,业务逻辑层在整个分层架构中相当于MVC结构中的Controlle层,其重要性不言而喻。
业务逻辑层的命名规范如下:
(1) 业务逻辑层通常命名为 BLL 或用方案名称 +BLL 的格式命名(例如:StuBLL.cs类)
(2) 每个实体类通常在业务逻辑层有对应的业务逻辑类。类的格式为实体类名称 +Manager。
数据访问层简称DAL,或称资料存取层、资料访问层,负责与数据库的交互,运行数据库查询并执行更新,简单的就是对数据的增删查改。回顾上面讲到的Mybatis架构和JDBC模式,在JDBC连接数据库的持久层的编写中,此层被称为DAO层,里面包含许多对表的各种增删查改的类方法,其不足点是含有太多冗余、重复的代码。而Mybatis采用的Mapper代理的开发方式,通过Mapper接口来操作xml映射文件,xml即直接对接数据库的可扩展的文件,使用起来更加方便。
1、数据访问层以 DAL 命名或以解决方案名称 +DAL 的格式命名(例如:StuDAL.cs类)
2、数据库中的每张表,在数据访问层都有相对应的数据访问类。即数据库的每张表都对应一个类,负责对该表执行增删改查等操作。
说了这么多,来点实例演示一下吧!
场景:你在武汉的一台计算机上浏览一网站,此时远在北京的服务器有了响应…
首先先看一张图:这是服务器常见的三层架构模式。
这时你在浏览器上点击了一条视频,Web界面通过调用 JS 来到了北京服务器的控制方法上了,于是在服务器中发生了这些过程:
等待一下你就得到你想要的内容了!!!
以上就是我在课程设计时遇到的一些问题,并做出了这么个归纳总结,是学习笔记哦,有不足的地方尽管提出来,一个人走得快,但一群人才能走得远,一起加油吧!!!
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。