3层架构 - 数据层只存储数据?

时间:2011-09-29 06:52:26

标签: c# asp.net architecture software-design 3-tier

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

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

这是对的吗?

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

逻辑层

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

数据:

  • 存储电子邮件记录

逻辑:

  • 将通知发送到演示文稿层
  • 通过电子邮件发送通知

2 个答案:

答案 0 :(得分:2)

注意:

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

您的体系结构更改

演示层 -

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

逻辑层

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

数据层:

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

数据存储,即数据库

  • 存储电子邮件记录

返回

DataLyer

  • 通知属性插入的逻辑层数据

逻辑层:

  • 将通知发送到演示文稿层正确插入/更新数据
  • 通过电子邮件发送通知如果数据已正确插入/已更新,则其他日志错误

答案 1 :(得分:2)

每一层都有自己的外部世界合同。

你不应该做或不做某事基于它可能已经在早期阶段完成(如验证)

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