0

我正在尝试找出 N 层应用程序设计的最佳实践。在设计我的 UI 需要的对象以及那些将保留在数据库中的对象时,我的一些同事建议这些对象是同一个对象。这对我来说感觉不对,我最终正在寻找一些最佳实践文档来帮助我做出这个决定。

编辑: 让我通过说数据库中的表(实体类)与 UI 中使用的对象相同来澄清这一点

老实说,鉴于其他应用程序可能想要与我的数据访问层交互,我真的不明白为什么要这样设计……或者这只是我的无知或缺乏理解。

您可以提供的任何文档和信息将不胜感激。只是想更好地理解这些概念,我很难找到一些关于实现这些模式的最佳实践的好信息(或者它就在我面前,我发现了什么,我不明白所概述的内容) .

谢谢,

小号

4

2 回答 2

2

首先,DAO 和数据库实体是两个非常不同的东西。

现在的问题。你是对的。数据库实体映射到数据库模式,并且该数据库模式应遵循数据库设计最佳实践,并进行规范化。UI 有时会准确显示来自给定实体的信息,但通常会以聚合格式显示来自多个实体的数据。或者,相反,它们只显示给定实体的一小部分。

例如,用户界面显示产品名称、描述和价格以及其类别名称、库存剩余商品数量以及产品制造商是有意义的。拥有一个包含所有这些字段的持久实体是没有意义的。

于 2012-09-28T21:45:22.790 回答
1

一般来说,根据大多数“最佳实践”评论,是的,这两层应该解耦并且应该有单独的对象。

但是:如果您的映射只是一对一的映射,在非数据库对象中没有任何进一步的功能,为什么要引入一个额外的对象?所以,这取决于。(照常 ;-) )。

如果引入的开销大于增益,则不要使用额外的对象。如果可重用性是首要目标,则不要将这两层结合起来。某些遗留应用程序可能并非如此,例如

于 2012-09-28T21:51:48.693 回答