1

我正在遵循Clean Architecture我们拥有 3 层 ( Presentation, Domain, Data) 的模式。

每个层都应该有自己的模型,并且这些模型应该在使用映射器传递到另一个层时进行转换。

我想知道是否有一种简单的方法(库?)将 a 映射data model到 adomain model而无需创建 a mapper,特别是如果 mydata model有很多字段(如 40-50)。

编辑

我已经尝试过ModelMapperDozerMapper但显然它们在 Android 上运行不佳(ModelMapper 问题DozerMapper 问题)。

提前致谢。

4

1 回答 1

4

正如亚当文森特所说,在干净的架构中,领域模型是核心,除此之外,每一层都应该只在必要的地方定义自己的模型。

我的日常工作涉及多个使用干净架构的项目。我们通常发现自动映射工具并没有提供太多价值。原因是,干净的架构从根本上说是为了消除从领域层到实现/结构内层的依赖关系。自动映射工具倾向于支持有限的转换,甚至强制您的持久层模型(例如 DTO)与域类型一对一匹配。这往往会限制域和持久层模型针对其不同职责进行定制的能力。

特别是,域类通常包含一组与相应持久层类略有不同的字段。我们更喜欢使用不可变类、构造函数和手动实现的映射逻辑等模式(前者大大简化了后者的维护)。这确保了明确和仔细考虑域和持久性模型之间的转换。

于 2021-01-28T06:07:27.827 回答