每个“容器”类一个 DAO 还是每个表一个 DAO?

2022-09-03 18:09:30

我有一个“容器”类,其字段包含在多个数据库表中,我使用DAO模式来访问数据。

问题是,我应该为这个“容器”类创建一个DAO,还是每个表有一个DAO并合并它们的数据更好?


答案 1

您应该根据应用程序需求而不是数据库的布局来设计 DAO。从一个 DAO 开始,如果它变得太大,则以对代码有意义的方式将其重构为多个 DAO。

DAO的全部意义在于对应用程序隐藏任何数据库概念(如表)。您的应用程序应该只使用一些有用的方法将其视为服务。

例如,如果您的应用程序需要一些同时来自 Users 表和 EmailAddresses 表的用户数据,则您的应用程序代码不必协调两个 DAO - 它应该调用一个 DAO 方法 getUserDetails(),DAO 将隐藏需要调用多个表的事实。

我建议您问题中的第一个选项,但我不会将自己限制在“每个容器类一个DAO”的规则中。


答案 2

推荐