三层架构

概念

          三层架构(3-tier application) :通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。高内聚低耦合,可插拔式的,在同一层中保持内聚性,层与层保持松耦合。

关系图

                                       

三层组成:

     1,表示层:(USL,User Show Layer) 

           前台:用于和用户交互,界面的显示有jsp,js,html,jquery等web前端技术。

           后台:用于控制跳转,调用业务逻辑层(Struts2,SpringMvc)。

     2,业务逻辑层:(BLL,Business Logic Layer)

           接收表示层的请求,调用数据访问层的方法,逻辑性的代码。

     3,数据访问层(DAL,Data Access Layer)

           直接访问数据库的操作,原子性的操作,不可再拆分。

三层间的关系:

     上层  请求传递给下层,下层处理后返回给上层。

 

基本工作流程(如下图):

     如果要增加一个Student(实体类),增加的信息有sname(张三),sage(18),sex(男)这三个属性属于Student对象(实体类不属于三层但三层中是借助实体类来传递数据),就将这三个属性放对象中传递,就不每次传三个信息,直接传一个对象,在表示层面添加要信息提交到业务逻辑层,在业务逻辑层先调用数据访问层的查询方法,查询“张三”是否放在,如果不存在之后调用数据访问层的增加方法(直接增加到数据库),最后数据访问层将结果(增加成功还是失败)回复到业务逻辑层,业务逻辑层返回给表示层。

 大致代码流程:

        表示层:  

public String addStudent() {
	//搜集页面提交的数据student,调用业务逻辑层的addStudent
	studentService.addStudent(student); 
	return "index";
}

        业务逻辑层:                

//业务逻辑层:写业务逻辑判断  增加Student 先判断  查询该Student是否存在  不存在才进行增加
	public void addStudent(Student student) {

		if(调用数据访问层的查询方法判断该Student是否存在){ //不存在该Student

			增加 (调用数据访问层到增加方法)

		}else { //存在

			提示 该Student已存在!!!

		}

	}

数据访问层:

    //查询
	public Student findStudentBySname(Studnet student) {
		
		直接访问数据库,查询该用户是否存在
		
		return stu;
	}
	
	
	//增加
    public void findStudentBySname(Studnet student) {
		
		直接对数据库进行操作 增加
		
	}

总结:

         通过以上可看出,业务逻辑层不管数据访问层连接的是MySql还是Oracle,只要你给我调用查询,增加的方法就行了,如果我查询和增加之前用的时Oracle,现在我用MySql我只要改数据访问层的就行了,业务逻辑层的代码我们不需要动。
        上层依赖其下层,依赖关系不跨层 ,单向依赖(都知道电视剧的间谍都是单向联系,一旦暴露不至于被一锅端)而三层架构思想也是这样,如果那一层有错或需要改动代码就不至于改动整个项目,去改某一层就行了。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值