3分级架构—数据层仅存储数据
本文关键字:数据 存储 3分 | 更新日期: 2023-09-27 18:10:11
数据层是否验证任何用户的输入?还是仅仅存储数据?
示例—用户将电子邮件添加到他的配置文件中。
这样对吗?
表示层-验证电子邮件格式是否有效(客户端)
逻辑层- 验证邮件格式是否有效
- 设置邮件类型(即主邮件?)
- 检查允许存储电子邮件的记录限制
数据:
- 保存邮件记录
逻辑:
- 向表示层发送通知
- 发送邮件通知
备注:
数据层任务是连接数据库并执行CRUD操作,如果您想应用比必须在逻辑层中执行的更多的验证逻辑
你的架构改变
展示层-
- 验证邮件格式是否有效(客户端)
- 验证电子邮件格式是否有效(再次?)- 不需要再做一次
- 设置邮件类型(即主邮件?)
- 检查允许存储电子邮件的记录限制
- 允许连接数据库
- 执行CRUD操作
数据存储即数据库
- 保存邮件记录
DataLyer
- 通知正确插入的逻辑层数据
逻辑层:
- 向表示层发送通知正确插入/更新数据
- 通过电子邮件发送通知如果数据插入/更新正确,则日志错误
每一层都有自己的一套与外部世界的契约。
你不应该做或不做一些基于假设它可能已经在前一层完成的事情(如验证)
然而,DataLayer不验证电子邮件地址格式。这不是它的责任。它甚至不应该理解电子邮件是什么样子的,除了它是一个特定长度的字符串。