基本上,我的应用程序中有许多对象,我必须在发送请求之前将它们转换为另一个第三方对象。收到响应后,我必须将这些对象转换回我的应用程序支持的对象。
我可以使用什么模式将一个模型对象转换为另一个模型对象?
答案 0 :(得分:8)
我认为没有特定的模式,但你只需要一个“转换器”或“转换器”类,它接受一个对象并返回另一个对象:
MyObject convert(ThirdPartyObject obj);
ThirdPartyObject convert(MyObject obj);
答案 1 :(得分:4)
适配器或外观模式都可以解决您的问题:
答案 2 :(得分:2)
适配器和 Facade 是结构模式。您没有任何模式可以满足对象转换。
在创作模式前面,Builder是您能想到的一种模式。
通常 Builder 模式用于构建具有强制和可选参数的对象。但你可以通过构建必要的对象来微调它。
您也可以在没有模式的情况下解决问题。您可以使用对象合成或编写自己的方法来转换对象。
使用代码示例查看相关的SE问题:
答案 3 :(得分:1)
您可能会寻找适配器模式:http://en.wikipedia.org/wiki/Adapter_pattern
答案 4 :(得分:1)
确定对象的上下文有点困难,但是看看Assembler模式,虽然从技术上讲不是设计模式。 Assembler类用于从一个对象映射到另一个对象,特别是当一个对象是域对象的DTO(有点像您的响应对象)时。 Dozer框架可以帮助您进行一些繁琐的转换。