在设计软件系统时,分层是应用最多的技术。以分层的维度来看待系统时,各个子系统以『分层蛋糕』的形式来组织,每一层都构建在其下层之上。上层使用下层定义的服务,下层对上层一无所知,下层对上层隐藏实现细节。
分层架构的优缺点
优点 | 缺点 |
---|---|
无需了解其他层次的实现细节 | 容易带来级联修改 |
层次间依赖性低,方便替换 | 层次过多影响性能 |
有利于标准化工作 |
分层的基本层次
分层架构中最困难的地方在于建立哪些层次以及决定每一层的职责是什么。
分层架构有三个基本层次,分为表现层、领域层、数据源层。
层次 | 职责 |
---|---|
表现层 | 提供服务,展示信息,例如 web 页面、app应用、命令行调用 |
领域层 | 逻辑,系统核心 |
数据源层 | 与其他系统的交互,例如数据库、其他应用、消息系统 |
常见问题
如何判断层次设计是否合理
增加一个新的表现层,是否需要编写重复的代码。或者将数据库替换成 xml 文件存储。
将本月比上月增长的列高亮逻辑是放到前端,还是后端
将逻辑放到前端,那么领域逻辑被拆成了两份。
一个好的建议是增加一个标志位,前端根据标志位来控制是否高亮。