我正在使用C ++(使用Qt库)来创建一个简单的域建模应用程序。我正在编写自己的O / R映射类。随着这个应用程序在未来的发展,我正在努力保持一个清晰的代码库与明确分离的层。
我遇到的问题是何时何地加载在另一个模块中的对象中引用的聚合根。 (我在这里使用Eric Evans使用“模块”这个词,来自DDD书。)
我目前有一个名为Client
的简单对象,它位于ClientModule
模块中。在PermitModule
我有一个Permit
对象。 (现实更复杂但为了简洁起见,我会坚持这两个对象,因为它们是聚合根)Permit
对象引用了Client
as applicant
。这是我的域名模型。
自下而上,我有一个基础设施层,它包含O / R映射类和Repository
个对象的具体实现。我在这里会有ClientMapper
,ClientRepositoryDb
,PermitMapper
和PermitRepositoryDb
类。
接下来是域层,其中包含域模型(Client
和Permit
类)以及存储库接口ClientRepository
和PermitRepository
。
上面我有应用层,然后是表示层,但在这个示例中无关紧要。
我的问题应该在Permit
课程或Client
课程中加载PermitMapper
和PermitRepository
之间的关系。或者还有其他方法吗?
这不仅适用于加载对象,还适用于保存和删除对象。
答案 0 :(得分:0)
我已经采用了Mapper类完全加载自身的方法。
我不是Java开发人员,但我想知道Hibernate(等)是如何做到的?