为什么映射 java 个

Why map java beens

我最近 运行 Orika

而且我找不到很好的解释为什么我应该使用它。如果我有一个 User 域对象,为什么不使用它呢?为什么我需要创建一个具有或多或少相同成员的 UserDTO。

当然有时候我需要隐藏一些字段。但这并不能解释为什么需要数十个库。

有人可以向我解释为什么我不应该从一个架构边界到另一个架构边界重复使用域对象吗?说边界包括层或微服务接口或任何类似的东西。

这一切都取决于!适用于大型系统的良好设计模式对于较小的系统来说往往是过大的杀伤力。您获得的数据是否真的与您的逻辑直观域对象相同,还是那里有额外的数据。

您是否发现自己处于this post的答案中描述的情况,然后DTO它。 DTO 的存在是为了通过在每个请求中传输更多数据来限制昂贵的网络操作的数量。假设你有 'User' 和 'AddressDetail' 域对象,并且你可以在一次调用中获取这两个对象的数据(并且数据在应用程序的同一区域很有用)那么你会使用 dto 并一次发送所有数据。

很难预测您的系统将如何增长(特别是如果您正在与其他人控制的生活 API 对抗),并且数据 transfer 对象某个级别提供了清晰的职责分离,这通常是一件好事。

我会说在大型系统中谨慎重用域对象。