使用DAO模式的利弊[已关闭]
2022-09-01 16:47:21
正如我在标题中提到的,我很想知道你(作为经验丰富的开发人员)对DAO模式的使用有什么看法,特别是在Web应用程序中。您发现了哪些优势,以及您不喜欢使用它的哪些后果?
正如我在标题中提到的,我很想知道你(作为经验丰富的开发人员)对DAO模式的使用有什么看法,特别是在Web应用程序中。您发现了哪些优势,以及您不喜欢使用它的哪些后果?
我所看到的DAO的问题在于它们通常一直处理完整的对象。这会产生完全不需要的开销,而这些开销在简单查询中是不存在的。例如,如果要从数据库引用数据创建下拉列表,DAO 用户可能只是说:“给我获取此表的对象集合,其中 y 按 z 排序”。然后,该数据在下拉列表中使用,但通常仅用于键/值组合,忽略检索和映射的对象(创建的数据,更新它的最后一个用户,它是否处于活动状态等)中的其他所有内容。即使这种处理发生在DAO调用附近,并且对象在检索时不会被存储(不幸的是,通常情况并非如此,对象通常被包装在c:forEach(JSP)中并迭代以产生下拉列表),它仍然会创建不需要的数据库和网络开销,更不用说临时增加内存来保存这些对象了。
现在,这并不是说DAO不能被设计为检索参考数据的地图 - 它当然可以。但通常它们用于完整的对象映射,这并不是所有时候都需要的。在保存时,这是一个优势,但是IMO在检索数据时是一个弱点 - 当然,您可以获得所有数据 - 但通常您不需要所有数据,它只会浪费内存,带宽和时间。
优点:
缺点: