分层架构最全详解(定义特点及模式应用)

分层架构最全详解(定义特点及模式应用)-mikechen

分层架构定义

分层架构,英文名layered architecture,分层架构将软件分成若干个水平层,每一层都有清晰的角色和分工。

 

分层架构特点

为什么要分层呢?主要原因有以下几点:

1.高内聚

分层的设计可以简化系统设计,让不同的层专注做某一模块的事。

2.低耦合

层与层之间通过接口或API来交互,依赖方不用知道被依赖方的细节

3.复用性

分层之后可以做到很高的复用。

4.扩展性

分层架构可以让我们更容易做横向扩展。

总而言之,分层的核心目的还是为了降解系统复杂度,提高系统的健壮性和可维护性,这也就是为什么需要分层的原因。

 

分层架构模式

分层架构将软件分成若干个水平层,每一层都有清晰的角色和分工,层与层之间通过接口通信。

分层架构,最常见的就是是四层结构,如下图所示:

分层架构最全详解(定义特点及模式应用)-mikechen

第一层:表现层presentation:负责用户界面;

第二层:业务层business:负责实现业务逻辑;

第三层:持久层persistence:负责提供数据,比如:SQL 语句就放在这一层;

第四层:数据库database:负责保存数据,持久化重要的数据;

 

分层架构优缺点

分层架构的优点

1)分工明确

不同技能的程序员可以分工,负责不同的层,天然适合大多数软件公司的组织架构。

2)降解系统复杂度

分层的核心目的还是为了降解系统复杂度,提高系统的健壮性和可维护性,这也就是为什么需要分层的原因。

 

分层架构的缺点

每一层都可以独立测试,其他层的接口通过模拟解决然而分层架构固然很好,但前提是分层合理。

扩展性差,增加需求必须依次扩展每一层,由于每一层内部是耦合的,扩展会很困难。

 

分层架构应用场景

分层架构在实际的开发应用已经非常普遍了,比如:

  • 电商网站,基本都是用的分层结构;
  • 以SpringBoot为代表的Web网站基本也使用分层架构;
  • 还有就是需要严格的可维护性和可测试性标准的应用。

 

 

作者简介

陈睿|mikechen,10年+大厂架构经验,BAT资深面试官,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

👇阅读更多mikechen架构文章👇

阿里架构 |双11秒杀 |分布式架构 |负载均衡 |单点登录 |微服务 |云原生 |高并发 |架构师

以上

关注作者「mikechen」公众号,获取更多技术干货!

后台回复架构,即可获取《阿里架构师进阶专题全部合集》,后台回复面试即可获取《史上最全阿里Java面试题总结

评论交流
    说说你的看法