知识卡片

三层架构的职责划分与调用关系

普通读书笔记卡

内容

展现层+业务层+数据层,是最常见的分层架构模式,三层各自的职责界限清晰。展现层(表现层)负责显示数据和接收用户输入,为用户提供交互式操作界面。业务层(业务逻辑层)负责处理各种功能请求、实现系统的业务功能,是一个系统最核心的部分。数据层(数据访问层)主要与数据存储打交道,比如实现对数据库的增删改查操作。三层之间的调用关系并非可以随意穿插,而是有明确的单向约束:展现层向业务层传递参数、发出服务请求,并获取业务层返回的信息显示在界面上;业务层接收展现层的命令,解析传递过来的参数、判断各种合法性,具体实现功能的”运算”要求,把结果返回给展现层;关键的一条约束是——数据访问层不能被展现层直接调用,必须由业务层来调用。这条”数据层不能被展现层跳过业务层直接调用”的约束,是三层架构真正发挥作用的关键:如果展现层可以绕过业务层直接访问数据库,业务逻辑(合法性判断、运算规则)就会被绕开或散落到展现层里,三层架构本该提供的”业务规则集中在业务层”这个保证就名存实亡了——理解这条单向调用约束,比记住三层各自叫什么名字更重要。

参考来源

- 位置:《软件架构设计:程序员向架构师转型必备》第13章《如何分层》"13.1.1 常见模式:展现层、业务层、数据层"节(源文件:_epub-src/OEBPS/text00016.html) - 结论依据:原文说明"展现层会向业务层传递参数,发出服务请求,并获取业务层返回的信息显示在界面上……数据访问层不能被展现层直接调用,而必须由业务层来调用",直接支撑本卡片结论。 - 原始内容:展现层会向业务层传递参数,发出服务请求,并获取业务层返回的信息显示在界面上。业务层接收展现层的命令,解析传递过来的参数,判断各种合法性……数据访问层不能被展现层直接调用,而必须由业务层来调用。