在一对多的数据库映射场景中,假设一个部门可以有多个员工,那么设计DAO层的最佳实践是什么?
我应该有一个泛型DAO类来获取/设置部门对象和获取/设置employees对象,还是分别有两个单独的DAO类DepartmentDAO和EmployeeDAO来获取/设置部门对象和employee对象?
发布于 2013-07-23 16:44:07
我会把它分开,用刀给部门,另一个给员工。我想红旗是:你怎么称呼组合刀?
如果一个清晰直观的名字没有立即出现在你的脑海中,那就是一种潜在的代码气味。如果你的名字不跳出来,那肯定会让看你代码的其他程序员感到困惑。为什么要把两个截然不同的东西粘在一起呢?
一些准则:
将部门和员工分开几乎没有什么坏处,而且在清晰性和维护代码的易用性方面也可能有显著的提高。如果你有充分的理由的话,将来把它们结合起来并不难。
这就是我的想法。
发布于 2013-07-23 16:50:21
实际上,在我看来,你至少需要三个不同的道斯:
DepartmentDAOEmployeeDAOEmployeeCollectionDAO事物是--单个实体的映射与实体组的映射有显着性差异。因此,它们应该由不同的结构来处理,否则就有违反SRP的风险。
另外,Department应该是与Employee实例的集合进行交互,而不是单独地与每个实例交互。
https://stackoverflow.com/questions/17816099
复制相似问题