1

当涉及到类关联时,我想知道组织 DAO 类的最佳方式。

例如。假设您有一个 Customer 表和一个 Order 表,并且您想访问与该客户关联的订单,那么拥有该方法的最佳位置在哪里,例如 getCustomerOrder(int customerid, int orderid)?

客户等级?订单类?客户订单类?

4

2 回答 2

0
  • 看起来您正在使用 CustomerOrder 类(中间的表)。
  • Customer 和 Order 之间的关系是 C *..* O}(多对多)。
  • 我建议将 放在getCustomerOrder(int cusomerid, int orderid)此类中,因为在运行时类实例,形式参数所需的值应该在 Customer 类和 Order 类的范围内。
  • 如果 CustomerOrder 是中间表,则相关表模式的引用完整性应该具有强制执行此用法的约束。

我喜欢这个链接作为中间数据透视表或表格的一个很好的例子

数据透视表

于 2012-07-09T01:13:12.340 回答
0

实际上我不会使用这些。Customer Class、Order Class 和 CustomerOrder 类都是关于业务领域的类。getCustomerOrder(int customerid, int orderid) 方法是关于如何持久化数据。出于许多不同的原因(如SoCSRP等...等),我将放入一个处理将数据持久保存到您想要持久保存的任何位置的类中。一种选择可能是 DBPersistenceSystem 或类似的东西。这也会有所帮助,因为 getCustomerOrder(int customerid, int orderid) 或 getCustomer(int customerid) 或 getOrder(int orderid) 的代码非常相似。如果你把它们都放在同一个类或一组类中,你最终会得到一个更好的设计。

于 2012-07-09T19:45:16.770 回答