一个'容器'类一个DAO还是每个表一个DAO?

15
我有一个“容器”类,它包含在几个数据库表中的字段,并且我使用DAO模式来访问数据。 问题是,我应该为这个“容器”类创建一个单独的DAO,还是最好为每个表创建一个DAO并组合它们的数据?
1个回答

31

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

DAO的整个目的是将任何数据库概念(如表)从应用程序中隐藏起来。您的应用程序应该只将其视为具有一些有用方法的服务。

例如,如果您的应用程序需要来自用户表和电子邮件地址表的一些用户数据,则您的应用程序代码不应该协调两个DAO - 它应该调用一个DAO方法getUserDetails(),并且DAO将隐藏需要调用多个表的事实。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接