【发布时间】:2011-01-31 07:28:36
【问题描述】:
在我们的应用程序中,我们有不同的层。服务层、DAO 层和操作(struts 应用程序)。
数据从一层传递到另一层。
理想情况下我们应该把输入验证放在哪里?
说,用户 ID,电话号码来自 UI,它们是强制性的。所以我们已经在客户端进行验证。
现在,根据我的意见,这就是你所需要的。没有其他地方应该验证它。
但我的一位同事争辩说,如果客户直接提出请求怎么办。所以我们还需要添加Actions。
现在,在 Dao 中,同样的方法也用于其他一些操作,但没有验证,
或者,说服务层,它可能被暴露为,比如网络服务,所以你也有验证。
所以本质上,他是在建议..我们到处都有验证。这对我来说没有意义。跨层重复。
什么是理想的方法?说验证可能是简单的空检查或一些复杂的验证。
【问题讨论】:
-
感谢大家的回复。我的问题可能是编程级别。 (可能是我混合了两件事)。让我详细说明。假设有 ProcessAction、ProcessService 和 ProcessDao。他们都有 createProcess(Str p1, p2, p3...pn) 现在,假设我正在执行 null 检查以确保所有参数都不为 null。现在,对所有 3 个进程执行 null check kin 有什么意义? (可能这个例子有助于我想问的问题)@Pangea 验证框架将一直工作到 Actions,我如何在服务和 dao 层使用? (如果我遗漏了什么,请纠正我)
标签: java design-patterns multi-tier