以下图像(即不可导航的合成关系)在域模型的早期UML类图中是否有意义?
我想表示不可能Company.Accounts
,但如果公司对象被销毁,所有帐户也将被销毁。我的动机是避免Company
类成为this question中讨论的某种神 - 对象反模式。在数据库术语中:有Account --> Company
的外键。在实际应用程序中,几乎所有内容都归公司所有,出于性能原因,我不想允许懒惰/急切加载公司的所有子集合。
我想最终的图表可能会有一个IAccountRepository
(见下图),但我发现它会增加Class Diagram的负担。想象一下,为每个子集合添加额外的基础结构类。类图会变得不可读!
如何在域模型中传达想法,即加载将是“间接的”?它甚至去那里吗?
有关此的任何参考或行业标准吗?
感谢。
答案 0 :(得分:0)
您正在将行为建模与静态模型混合使用。如果Company
从不直接访问Account
,您在Company
和Account
之间设置的关系就可以了,但如果Company
中有函数访问Account
,那么你的模型是错误的。
据我所知,没有办法模拟一方Company
由Accounts
组成,但帐户实际存储在另一个地方。您的第二个图表不正确,因为如果Company
由Accounts
组成,那么IAccountRepository
应该通过Company
访问它们,而不是直接访问它们。
恕我直言,Account
应具有从IAccountRepository
到Account
的组合,从Company
到Account
的关联,以及ICompanyRepository.deleteCompany
的序列图当公司被删除时,所有帐户都将被删除。