TableData网关与Rowdata Gataway有何不同?需要澄清

Ale*_*lex 7 design-patterns poeaa

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

Don*_*oby 9

行数据网关封装了对数据库中行的访问,而表数据网关封装了表级别的访问权限,而在我看来,根本不是另一个的退化形式.

虽然Table Data Gateway找到了返回RecordSets的方法,但是使用Row Data Gateway,您需要一个单独的Finder类,每行返回一个网关类.

无论您使用哪种以及您使用哪种都是复杂的决定,您可以选择使用哪种其他模式.

从他在"何时使用它"中关于两种模式的讨论中,如果使用域模型模式,他更愿意使用Active Record.这两种网关模式都可以与Transaction Script结合使用.

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

您不可能在单个应用程序中使用这两种模式.