1

数据层是否验证用户的任何输入?还是只存储数据?

示例 - 用户将电子邮件添加到他的个人资料。

这是正确的吗?

演示层 - 验证电子邮件格式是否有效(客户端)

逻辑层

  • 验证电子邮件格式是否有效(再次?)
  • 设置电子邮件类型(即是主要电子邮件?)
  • 检查允许存储电子邮件的记录限制

数据:

  • 存储电子邮件记录

逻辑:

  • 向表示层发送通知
  • 通过电子邮件发送通知
4

2 回答 2

2

笔记 :

数据层的任务是连接数据库并执行 CRUD 操作,如果您想应用额外的验证逻辑,而不是必须在逻辑层中执行

您的架构更改

展示层 -

  • 验证电子邮件格式是否有效(客户端)

逻辑层

  • 验证电子邮件格式是否有效(再次?) -无需再次验证
  • 设置电子邮件类型(即是主要电子邮件?)
  • 检查允许存储电子邮件的记录限制

数据层:

  • 允许连接数据库
  • 执行 CRUD 操作

数据存储即数据库

  • 存储电子邮件记录

返回

数据分析仪

  • 通知正确插入的逻辑层数据

逻辑层:

  • 向表示层发送通知,或者正确插入/更新数据
  • 如果数据插入/更新正确,则通过电子邮件发送通知,否则记录错误
于 2011-09-29T06:57:17.100 回答
2

每一层都有自己的一套与外界的合同。

您不应该做或不做某事,假设它可能已经在较早的层完成(如验证)

但是 DataLayer 不验证电子邮件地址格式。它不是其职责的一部分。它甚至不应该了解电子邮件的外观,除非它是某个特定长度的字符串。

于 2011-09-29T07:07:12.600 回答