假设我有一组数据库表(客户,产品,类别,customer_products,product_categories,customer_categories)和与每个数据库对应的类(基本实体表的基本实体类,以及外键的CustomerProductLinker等类)表)。 “链接器”类具有addXToY,removeXFromY,getXsOfY和getYsOfX等方法。
问题来自额外的业务要求:1)向产品添加客户应将该客户添加到每个产品的类别,2)将产品添加到类别应将每个产品的客户添加到类别。使用当前的类系统,它在CustomerProductLinker和ProductCategoryLinker之间创建依赖循环。
我不知道如何解决这个问题。将所有“链接器”组合成一个大的“SuperLinker”类看起来非常错误。并且将链接器对象实例化仅保留在需要它们的方法内,而不是通过构造函数注入中传递链接器似乎更糟糕(尽管它技术上解决了循环)。
我怀疑这个链接器类系统是处理这种设置的最佳方法,但我没有足够的经验知道可以做什么。不幸的是我不能使用ORM,因为这些表并不都存储在同一台服务器上。那么......还能做些什么?