2010-02-12 29 views
1

我正在使用C++(与Qt库)来制作一个简单的域模拟应用程序。我正在编写自己的O/R映射类。随着这个应用程序将在未来增长,我试图保持清晰的代码库与明确分离的图层。存储库,映射器,以及如何加载对象及其关系

我遇到的问题是何时何地加载在另一个模块中的对象中引用的聚合根。 (我正在使用Eric Evans在这里使用的“模块”一词,来自DDD书籍。)

我目前有一个简单的对象,名为Client,位于ClientModule模块中。在PermitModule我有一个Permit对象。 (现实更为复杂,但为了简洁,我将坚持这两个对象,因为它们是聚合根Permit对象对Client的引用为applicant。这是我的领域模型。

从下往上,我有一个基础结构层,它包含O/R映射类和具体实现的Repository对象。所以我会在这里有ClientMapper,ClientRepositoryDb,PermitMapperPermitRepositoryDb类。

接下来是领域层包含域模型(ClientPermit类)加上库接口ClientRepositoryPermitRepository

上面说我有一个应用层然后表示层但那些没有在这个例子中关系。

我的问题是应该PermitClient之间的关系在PermitMapper类或PermitRepository类加载。或者还有其他的方式吗?

这不仅适用于加载对象,还适用于保存和删除它们。

+0

嗨!我目前正面临完全相同的问题。你的方法最终看起来如何,你到底做了什么?你的域对象如何获取数据? – displayname 2016-08-24 16:25:52

回答

0

我已经走过了我的Mapper类完全加载自己的方法。

我不是Java开发人员,但我不知道Hibernate(等)如何做到这一点?