三层架构
与MVC设计模式的目标一致:都是为了解耦合,提高代码的复用性;
区别在于二者对项目的理解角度不同
三层的组成
表示层
-
表示层(USL, User Show Layer ; 视图层)
前台:对应于MVC中的View,用于和用户交互,界面的显示jsp ,js, html,css,jquery等web前端技术
后台:对应于MVC中Controller,用于控制跳转、调用业务逻辑层Servlet(SpringMVC Struts2),一般位于xxx.servlet包中 -
业务逻辑层(BLL,Business Logic Layer; Service层)
接收表示层的请求 调用
组装数据访问层,逻辑性的操作(增删改查)
一般位于xxx.service包 也可以称为xxx.manager 、xx.bll -
数据访问层(DAL, Data Access Layer; Dao层)
直接访问数据库的操作,原子性的操作(增删改查)
一般位于 xxx.dao包
三层件的关系:
上层 将请求传递给下层,下层处理后 返回给上层
三层架构的优劣势:
- 结构清晰、耦合度低
- 可维护性高,可扩展性高
- 利于开发任务同步进行, 容易适应需求变化
- 降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。
- 有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码
- 增加了代码量,增加了工作量