我正在努力找出N层应用程序设计的最佳实践。在设计我的UI需要的对象以及将在DB中保留的对象时,我的一些同事建议对象是同一个。这对我来说并不合适,我最终会寻找一些最佳实践文档来帮助我做出这个决定。
修改 让我通过说DB中的表(实体类)与UI中使用的对象相同来澄清这一点
老实说,我不明白为什么我会想要设计这种方式,因为其他应用程序可能想要与我的数据访问层进行交互....或者只是无知或缺乏对我的理解。
您可以提供的任何文档,信息将不胜感激。只是想更好地理解这些概念,我很难找到关于实现这些模式的最佳实践的一些很好的信息(或者我在我发现的内容面前是正确的,我不明白所概述的内容) 。
谢谢,
取值
答案 0 :(得分:2)
首先,DAO和数据库实体是两个非常不同的东西。
现在回答这个问题。你是对的。数据库实体映射到数据库模式,此数据库模式应遵循数据库设计最佳实践,并进行规范化。用户界面有时会准确地显示来自给定实体的信息,但通常以聚合格式显示来自多个实体的数据。或者,相反,它们只显示给定实体的一小部分。
例如,UI显示产品名称,描述和价格以及类别名称,以及库存中剩余商品的数量以及产品制造商是有意义的。拥有包含所有这些字段的持久化实体是没有意义的。
答案 1 :(得分:1)
一般而言,根据大多数“最佳做法”评论,是的,这两个层应该是分离的,并且应该有单独的对象。
但是:如果您的映射只是一对一映射,而非数据库对象没有任何进一步的功能,为什么要引入一个额外的对象?所以,这取决于。 (像往常一样;-))。
如果引入的开销大于增益,请不要使用其他对象。如果可重用性是一流的目标,请不要将这两个层耦合在一起。某些遗留应用程序可能不是这种情况,例如