gpt4 book ai didi

java - 避免与数据对象重复

转载 作者:行者123 更新时间:2023-11-30 03:06:05 25 4
gpt4 key购买 nike

我们有一项服务可以生成数十种不同的响应 bean。它们由应用程序内的其他服务使用。还有一个 Web 服务公开了部分相同的功能。它返回的响应对象几乎与内部响应 bean 1:1 对应。当然它们并不相同:删除了一些字段,添加了 swagger 文档属性等。

重复使用相同的 bean 感觉是不可能的,它们足够不同,即使只有轻微的不同,将它们混合在一起感觉很糟糕,因为一个是内部的,另一个是暴露的。另外还有一个梦想,就是以现代微服务类型的方式开发它,其中组件是模块化和独立的。

不重用意味着本质上复制每个响应对象,创建转换器,保持两者同步。

这两种方法都很糟糕,我想不出什么好的办法。

最佳答案

是的。

我经常来这里。有一些工具可以使映射器变得更容易(bean 映射器等等),但它们通常会引入更多的错误。我还见过/尝试过继承方案,让一个域对象从另一个域对象继承......这通常会导致比它解决的问题更多的问题。

事实证明,90% 的情况下,您对数据的内部表示和外部表示有不同的关注点。映射层是将这些问题分开的好地方。将它们结合起来总是让我在未来的道路上更加痛苦。您的情况可能会有所不同,但我怀疑它会有所不同,除非您拥有最简单的应用程序,否则您将需要拥有单独的对象。

这是无聊的代码,但很简单,而且很容易测试。一旦你这样做了,你的封装就会大大提高,并且你可以允许你的合约独立于你的内部实现而改变。

关于java - 避免与数据对象重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34758392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com