为什么需要分层
- 不分层的应用架构
- 代码不够清晰
- 难以阅读
- 代码的职责不清晰,难以扩展
- 代码负责,难以维护
- 代码没做分工,难以组织
- 分层的应用架构
- 按业务功能进行分层
- 良好的层次关系
- 每一层都能够保持独立
三层架构
表示层(Presentation Layer):提供与用户交互的界面
业务逻辑层(Business Layer):业务逻辑成,实现各种业务逻辑
-
数据访问层(Data Access Layer):数据持久层,负责存放或者管理业务数据,与数据库打交道的
-
vs MVC
-
Model,View,Controller
-
博客系统的架构设计与职责划分
- 表示层
- controller,view。。。。
- 业务层
- Entity(模型,实体),Service(服务)
- 数据库访问层
- Repository(存储库的形式),采用JPA的接口
- 职责划分
- 博客系统
- 关系型数据库:mysql,h2,nosql,elasticsearch(非关系型)
- 文件管理系统:nosql,MongoDB(小文件,图片等)
- 通过RESTful API进行交互
- 博客系统