我们使用 Lucene 作为数据检索的搜索服务器。
随之而来的是一些我没有准备好的复杂性,其中最重要的是管理对象之间的关系。
我想为我们的域对象创建一个干净简单的 POCO。这些 POCO 将包含 UI 所需的相关对象,但没有其他字段(定义这些关系的 ID,UI 上根本不需要的各种其他字段)
这意味着我不能直接将 Lucene 的 Hits 集合转换为我的 UI 友好的 POCO,并且需要一些中间类集,这些类至少包含相关对象的 ID(存储在相同或其他索引中)。我不愿称这些 DTO 对象,但为了简单起见,我将它们称为。
所以我设想它的工作方式如下:
- 在 Lucene -> Hits 集合中执行查询
- 遍历 Hits -> DTO 集合
- DTO 集合 -> [检索相关对象的服务,组成 POCO] -> POCO
- 使用闪亮的简单 POCO 渲染 UI
我这样做的恐惧是我最终会得到贫血域模型(http://www.martinfowler.com/bliki/AnemicDomainModel.html)。
这是一个有效的担忧还是我走在正确的道路上?