我遵循整洁架构
模式,其中我们有3层(演示
、域
、数据
)。
每个层都应该有自己的模型,并且这些模型在使用映射器传递到另一个层时应该进行转换。
我想知道是否有一种简单的方法(库?)将数据模型
映射到域模型
而无需创建映射器
,特别是如果我的数据模型
有很多字段(例如40-50)。
编辑
我已经尝试过 ModelMapper和 DozerMapper但显然它们在 Android 上运行不佳( ModelMapper issue 和 DozerMapper issue )。
提前致谢。
最佳答案
如Adam Vincent说,在整洁的架构中,领域模型是核心,除此之外,每一层都应该仅在必要时定义自己的模型。
我的日常工作涉及多个使用整洁架构的项目。我们通常发现自动映射工具没有提供太多值(value)。原因是,整洁的架构从根本上讲是消除从域层到实现/结构层的依赖关系。自动映射器工具往往支持有限的转换,甚至强制持久层模型(例如 DTO)与域类型一对一匹配。这往往会限制域和持久层模型针对其不同职责进行定制的能力。
特别是,域类通常包含一组与相应的持久层类略有不同的字段。我们更喜欢使用不可变类、构造函数和手动实现的映射逻辑等模式(前者大大简化了后者的维护)。这确保了域模型和持久性模型之间的转换得到明确且仔细的考虑。
关于java - 将数据模型映射到域模型的简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47041495/