【发布时间】:2012-10-25 14:09:18
【问题描述】:
基本上,我的应用程序中有许多对象,我必须在发送请求之前将它们转换为另一个第三方对象。收到响应后,我必须将这些对象转换回我的应用程序支持的对象。
我可以使用什么模式在 Java 中将一个模型对象转换为另一个?
【问题讨论】:
标签: java design-patterns
基本上,我的应用程序中有许多对象,我必须在发送请求之前将它们转换为另一个第三方对象。收到响应后,我必须将这些对象转换回我的应用程序支持的对象。
我可以使用什么模式在 Java 中将一个模型对象转换为另一个?
【问题讨论】:
标签: java design-patterns
我认为这没有特定的模式,但您只需要一个“转换器”或“翻译器”类来接收一个对象并返回另一个对象:
MyObject convert(ThirdPartyObject obj);
ThirdPartyObject convert(MyObject obj);
【讨论】:
适配器或外观模式应该可以解决您的问题:
【讨论】:
Adapter 和 Facade 是结构模式。您没有任何模式可以满足对象转换。
在创建模式方面,Builder 是您能想到的一种模式。
Builder 模式通常用于构建带有强制和可选参数的对象。但是你可以通过构建必要的对象来微调它。
你也可以在没有模式的情况下解决问题。您可以使用对象组合或编写自己的方法来转换对象。
通过代码示例查看相关的 SE 问题:
【讨论】:
您可能正在寻找适配器模式:http://en.wikipedia.org/wiki/Adapter_pattern
【讨论】:
确定对象的上下文有点困难,但是看看汇编器模式,虽然从技术上讲不是设计模式。 Assembler 类用于从一个对象映射到另一个对象,特别是当一个对象是 DTO(有点像您的响应对象)到 Domain 对象时。 Dozer 框架可以帮助您完成其中一些繁琐的转换。
【讨论】: