层次式架构是软件体系结构设计中最为常用的一种架构形式,它为软件系统提供了一种在结构、行为和属性方面的高级抽象。其核心思想是将系统组成为一种层次结构,每一层为上层服务,并作为下层的客户。
层次式架构设计技术:
- 表现层
- 中间层
- 访问层
- 数据层
概述
软件体系结构可定义为:软件体系结构为软件系统提供了结构、行为和属性的高级抽象,由构成系统的元素描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。
软件层次式体系结构是最通用的架构,也被叫作N层架构模式(n-tier architecture pattern),这也是Java EE(J2EE)应用经常采用的标准模式。
分层架构的一个特性就是关注分离(separation of concerns)。该层中的组件只负责本层的逻辑,组件的划分很容易明确组件的角色和职责,也比较容易开发、测试管理和维护。
当然,小的应用有时候会将业务层和持久层合在一起,更大规模的应用可能会划分更多的层,比如:增加调用外部服务的层等。
层次式体系结构设计时要注意以下两点:
- 要注意污水池反模式
- 所谓污水池反模式,就是请求流简单地穿过几个层,每层里面基本没有做任何业务逻辑,或者做了很少的业务逻辑。
- 需要考虑分层架构可能让你的应用变得庞大
- 即使表现层和中间层可以独立发布,但是它的确会带来一些潜在问题,比如:分布式模式复杂、健壮性下降、可靠性和性能的不足,以及代码规模的膨胀等。