将数据模型映射到域模型的简单方法
我正在遵循Clean Architecture
模式,其中我们有3层( Presentation
, Domain
, Data
)。
每个图层都应该有自己的模型,这些模型在使用mapper传递到另一个图层时应该被转换。
我想知道是否有一个简单的方法(一个库?)将data model
映射到domain model
而不创建mapper
,特别是如果我的data model
有很多字段(如40-50)。
编辑
我已经试过ModelMapper和DozerMapper,但显然他们不能很好地在Android( ModelMapper问题和DozerMapper问题 )上工作。
提前致谢。
你正在寻找一个AutoMapper! 有很多,大部分都大致命名为AutoMapper。
这是一个Java的: http : //modelmapper.org/
我不知道Kotlin,因为我还没有看过它,但我猜测,如果一个JavaScript自动映射器库不兼容,它将不会很长时间之前。
最后的辩论思路:
我想澄清一下,除非有必要,否则每一层都不应该有自己的模型。 我相信清洁架构,你的领域模型应该是goto。 例如; 如果你需要调整你的模型,使其可以被持久化(例如,在一个SQL数据库中),那么你需要一个DTO。 另一方面,如果您的域模型可以序列化为JSON并保存到NoSQL数据库中,则不需要复制模型。 保持干爽!