gpt4 book ai didi

java - 将Web服务请求转换为内部表示?

转载 作者:太空宇宙 更新时间:2023-11-04 08:36:44 24 4
gpt4 key购买 nike

我正在实现一个接收不同请求的 SOAP-Webservice。我的 Manager 类是否应该在将请求对象委托(delegate)给实现类之前将其转换为内部表示?

我认为这对于解耦来说是一个好主意。但这样做时,我必须创建每个 RequestObject 类的副本并将其命名为 InternalRequestObject,它存储与原始 Request 相同的数据。

这有意义吗?

最佳答案

如果您打算重用这些实现类,我将其称为您的业务层,这是有意义的。

在您当前的设置中,您将业务层公开为 Web 服务。如果您愿意的话,Web 服务的骨架是业务层的客户端。

现在出现的问题是:您的业务层是否应该关心它将拥有什么样的客户?业务层的数据契约应该由客户端决定,还是客户端应该尊重业务层公开的数据契约?

显而易见的答案是客户端应该尊重业务层的数据契约,因此您的问题的答案是:,您应该将 SOAP 请求映射到实现类使用的内部请求类型,以便在两者之间获得更好的解耦。

只有一种情况我会考虑直接使用请求类型一直深入到我的业务层:如果我绝对(101%)确定我永远不必将我的业务层公开为 SOAP Web 服务以外的任何其他内容。

这个想法是你只有两个主要选择:

<强>1。在所有地方保持相同的请求类型。这样做的缺点是,如果在某些时候您必须添加其他(非 SOAP)客户端,您将遭受大量的重写,破坏您的业务层。

或者

<强>2。将 SOAP 请求类型映射到内部类型。这样做的缺点是,您可能会冒着重复代码和额外工作的风险,但最后却发现一切都是徒劳,而且您根本不需要添加其他客户端。

考虑一下自己的情况,慎重选择!但我必须告诉你,就我个人而言,到目前为止我还没有遇到过第二个缺点。我总是最终向该事物添加新客户端,此时它有助于从一开始就映射类型。

关于java - 将Web服务请求转换为内部表示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6184346/

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