我正在使用C++(与Qt库)来制作一个简单的域模拟应用程序。我正在编写自己的O/R映射类。随着这个应用程序将在未来增长,我试图保持清晰的代码库与明确分离的图层。存储库,映射器,以及如何加载对象及其关系
我遇到的问题是何时何地加载在另一个模块中的对象中引用的聚合根。 (我正在使用Eric Evans在这里使用的“模块”一词,来自DDD书籍。)
我目前有一个简单的对象,名为Client
,位于ClientModule
模块中。在PermitModule
我有一个Permit
对象。 (现实更为复杂,但为了简洁,我将坚持这两个对象,因为它们是聚合根)Permit
对象对Client
的引用为applicant
。这是我的领域模型。
从下往上,我有一个基础结构层,它包含O/R映射类和具体实现的Repository
对象。所以我会在这里有ClientMapper
,ClientRepositoryDb
,PermitMapper
和PermitRepositoryDb
类。
接下来是领域层包含域模型(Client
和Permit
类)加上库接口ClientRepository
和PermitRepository
。
上面说我有一个应用层然后表示层但那些没有在这个例子中关系。
我的问题是应该Permit
和Client
之间的关系在PermitMapper
类或PermitRepository
类加载。或者还有其他的方式吗?
这不仅适用于加载对象,还适用于保存和删除它们。
嗨!我目前正面临完全相同的问题。你的方法最终看起来如何,你到底做了什么?你的域对象如何获取数据? – displayname 2016-08-24 16:25:52