分层架构定义
分层架构,英文名layered architecture,分层架构将软件分成若干个水平层,每一层都有清晰的角色和分工。
分层架构特点
为什么要分层呢?主要原因有以下几点:
1.高内聚
分层的设计可以简化系统设计,让不同的层专注做某一模块的事。
2.低耦合
层与层之间通过接口或API来交互,依赖方不用知道被依赖方的细节
3.复用性
分层之后可以做到很高的复用。
4.扩展性
分层架构可以让我们更容易做横向扩展。
总而言之,分层的核心目的还是为了降解系统复杂度,提高系统的健壮性和可维护性,这也就是为什么需要分层的原因。
分层架构模式
分层架构将软件分成若干个水平层,每一层都有清晰的角色和分工,层与层之间通过接口通信。
分层架构,最常见的就是是四层结构,如下图所示:
第一层:表现层presentation:负责用户界面;
第二层:业务层business:负责实现业务逻辑;
第三层:持久层persistence:负责提供数据,比如:SQL 语句就放在这一层;
第四层:数据库database:负责保存数据,持久化重要的数据;
分层架构优缺点
分层架构的优点
1)分工明确
不同技能的程序员可以分工,负责不同的层,天然适合大多数软件公司的组织架构。
2)降解系统复杂度
分层的核心目的还是为了降解系统复杂度,提高系统的健壮性和可维护性,这也就是为什么需要分层的原因。
分层架构的缺点
每一层都可以独立测试,其他层的接口通过模拟解决然而分层架构固然很好,但前提是分层合理。
扩展性差,增加需求必须依次扩展每一层,由于每一层内部是耦合的,扩展会很困难。
分层架构应用场景
分层架构在实际的开发应用已经非常普遍了,比如:
- 电商网站,基本都是用的分层结构;
- 以SpringBoot为代表的Web网站基本也使用分层架构;
- 还有就是需要严格的可维护性和可测试性标准的应用。
陈睿mikechen
10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注「mikechen」公众号,获取更多技术干货!
后台回复【面试】即可获取《史上最全阿里Java面试题总结》,后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》