有这种循环关联是绝对好的.
当然,有很多陷阱会让您大吃一惊.但是,如果格外谨慎,这种关系并不总是有害的.
您需要特别注意的事项包括:
>尝试定义关系的“所有者”.如果您要保留实体,这一点尤其重要
>确保所有权关系不是循环的.例如,在您的示例中,您可以定义拥有Company-Department和Company-Employee关系的Company,以及拥有Department-Employee关系的Department
>确保关系一致.例如,对于Employee与Department之间的双向关系,当您从Department中删除Employee时,请确保您始终从Employee中删除Department.
>尽量减少管理关系的方式.例如,不提供Department#addEmployee(Employee)和Employee#addDepartment(Department),而只需提供Department#addEmployee(Employee).这应该使保持一致性的工作更加容易.
不过,如果您可以设法使其成为单向和非圆形的,则始终易于处理.
本文探讨了循环关联在软件设计中的应用及其潜在问题。提出了一系列建议,包括定义关系的所有者、确保所有权关系非循环、保持关系一致性及简化管理方式等。

被折叠的 条评论
为什么被折叠?



