gpt4 book ai didi

design-patterns - 表数据网关与 Rowdata 网关有何不同?...需要澄清

转载 作者:行者123 更新时间:2023-12-04 07:05:20 24 4
gpt4 key购买 nike

我最近一直在阅读,TableData Gateway 和 RowData Gateway。根据“企业应用程序架构模式”RDG 一次处理一条记录,而 TDG
处理整个表。但是这两种模式看起来非常相似,它们封装了 SQL 查询,并根据我们所做的查询返回记录集中的单条记录或多条记录。我真的不知道什么时候更喜欢 TDG 代替 RDG。它通过一些解释来澄清差异会非常有帮助。根据 Martin Fowler 的说法,TDG 在返回一条记录时与 RDG 相同。但我们也可以将 RDG 用于多条记录!那为什么要使用 TDG。
任何帮助将不胜感激。
谢谢你。

最佳答案

Row Data Gateway封装对数据库中一行的访问,而 Table Data Gateway封装了表级别的访问,在我看来,一个根本不是另一个的退化形式。

虽然表数据网关具有返回记录集的 find 方法,但对于行数据网关,您需要一个单独的 Finder 类,该类为每行返回一个网关类。

您是否使用任何一个以及您使用哪个是复杂的决定,这与您选择使用的其他模式有关。

如果使用 Domain Model,来自他在“何时使用它”部分中关于这两种模式的讨论模式,他更喜欢使用 Active Record要么。这两种网关模式与 Transaction Script 结合使用都是明智的。 .

表数据网关更简单,因此如果它满足您的需求,它可能是正确的选择。

您不可能在一个应用程序中同时使用这两种模式。

关于design-patterns - 表数据网关与 Rowdata 网关有何不同?...需要澄清,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6790563/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com