Design patterns DAO是否负责将记录插入到';加入';桌子

Design patterns DAO是否负责将记录插入到';加入';桌子,design-patterns,language-agnostic,dao,Design Patterns,Language Agnostic,Dao,例如,如果我有两个表:Customer和Product,我需要将客户映射到产品(多对多)。所以我需要第三个(join)表,它将包含CustomerId和ProductId。DAO是否负责将记录插入第三个(join)表 另外,目前我有CustomerDAO和ProductDAO。将客户映射到由服务层处理的产品。是的,DAO可以实现如下方法 updateProduct(CustomerId) updateCustomer(产品ID) findCustomerByProduct(产品ID) find

例如,如果我有两个表:
Customer
Product
,我需要将客户映射到产品(多对多)。所以我需要第三个(join)表,它将包含
CustomerId
ProductId
DAO
是否负责将记录插入第三个(join)表


另外,目前我有
CustomerDAO
ProductDAO
。将客户映射到由服务层处理的产品。

是的,DAO可以实现如下方法

  • updateProduct(CustomerId)
  • updateCustomer(产品ID)
  • findCustomerByProduct(产品ID)
  • findProductsByCustomer(customerId)

    • 当然,这是它的责任。如果不是
      DAO
      ,那么谁来代替它呢?

      现在它是在服务层实现的(见更新的问题)。至于我,我不认为在第三个服务层类中实现这样的关系是个好主意。好的,谢谢。但我必须在哪里实现(在DAO或服务层?)方法,在哪里我需要找到与给定对象松散耦合的对象。例如,我有
      Employee
      Manager
      实体(带有相应的表和DAO)。我需要找到给定员工的经理。但我需要走很长的路才能找到给定员工的经理(员工产品提供商组织经理(不是真正的结构,仅举个例子))。DAO是否有这样的方法(EmployeeDAO#getManager(intemployeeid))?或者最好将此方法放入服务层?即,DAO(CustomerDAO和ProductDAO)现在都可以使用第三个表?是的,您将在此连接层中与这两个实例进行交互。但是
      assignCustomerToProduct(intcustomerId,stringproductId)
      方法呢?此方法将把记录插入第三个表中。我可以在
      CustomerDAO
      中有这样的方法吗?这些不是硬性规定,只是为了给大家一个想法。是的,你提到的方法名称更有意义