我有一个存储库层负责我的数据访问,它由服务层调用。服务层返回经过序列化并通过线路发送的 DTO。通常,服务只是访问存储库并返回存储库返回的任何内容。
但要使其发挥作用,存储库必须返回该 DTO 的实例。否则,您首先必须将存储库返回的数据层对象映射到服务层中的 DTO 并返回该对象。这看起来很浪费。
最重要的是,如果 DTO 的创建发生在服务层中,那么以前可能在一个存储库调用中完成的操作以及一个数据库查询现在必须在服务层中通过多个存储库调用来“组合”最终DTO。当然,除非我在数据层和服务层之间创建一个可以包含此类组合对象的传输对象。哪个then必须映射到 DTO。为了纯粹而显得浪费。但让存储库层返回仅存在于网络上发送的对象也感觉不对。
简短回答:不。
长答案:存储库负责将持久数据转换回实体(模型),反之亦然。
模型是代表业务实体的业务模型。另一方面,DTO——虽然看起来像模型——关注的是对象在不同环境之间的传输,本质上是一个瞬态对象。通常mappers负责将模型转换为DTO。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)