漫谈软件分层架构

架构定义

软件架构的定义有很多,这里我们理解为软件系统的基本结构,组成系统的各个功能及行为。尽管术语架构通常指的是建筑设计,但在软件系统中,它包括组件的设计、组件之间的关系、用户交互,以及系统的用户需求。

什么是分层架构

分层架构是软件开发中应用最广泛的架构框架。N层架构表示几个独立层组成单个软件单元的架构模型,单个层是逻辑独立的组件或代码:

Presentation Layer – 表示软件下图的用户交互
Application/Business Layer – 负责处理和实现功能需求
Domain Layer – 负责算法及编程组件
Infrastructure/Persistence/Database Layer – 负责数据处理,如数据库

需要说明的是在一些应用中有些层被合并了。如业务层与持久层合并为单个层,这意味着这两层的功能被组合在单个层中。

优势与劣势

下面简要说明下分层的优势与劣势:

  • 优势

框架简单容易学习并实践
减少依赖,每层功能相互独立
独立组件容易测试,每个组件可以单独进行测试
总体运维成本相对较低

  • 劣势

可伸缩性是困难的,因为框架的结构不允许增长。
维护困难,运维每层改变会影响到整个系统。
层之间相互依赖,上层依赖下层,从下次接收数据。
不能并行处理业务

应用场景

当开发简单的小型系统,建议使用分层架构。因为它是比较简单的框架,但也有开发者认为分层比较难维护,应该在大型项目中使用。尽管观点不同,该框架能够快速构建应用、且容易上手;当遇到不确定使用那个框架或没有太多软件架构知识时选择分层框架不失为较好的选项。我们常见WEB应用框架、OSI模型、J2EE编程模型也都是分层架构。

总结

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年1月20日
下一篇 2022年1月20日

相关推荐