原因是否与正常的多模块应用程序编程类似——这样客户端就可以使用接口而不必担心实现细节?
注意,我谈论的是WSDI/UDDI/SOAP,而不是普通的应用程序接口。
WSDL有一个抽象部分和一个具体部分,它们是分开的,以便允许重用这些定义。同一个合约可以绑定到许多具体的网络协议和消息格式。
定义的重用,在UDDI上下文中意味着一个接口,多个实现。
使用UDDI的一个想法是可以在运行时发现所需的web服务。您可以进入注册中心并查找某个WSDL契约的实现:
超越Cookbook:接口和实现
[…]
如果三个不同的公司实现了相同的WSDL文件,并且一个客户端软件为该WSDL接口创建了代理/存根代码,那么客户端软件可以使用相同的代码库与所有三个实现进行通信
[…]
- http://www2.sys-con.com/itsg/virtualcd/webservices/archives/0103/januszewski/index.html
至少理论上是这样。但实际情况却是相反的。
简短的回答是没有。当您通过WSDL发布Web服务时,如何实现它并不重要。无论您是否为后端Web服务定义了接口,使用您的服务的客户机应用程序都将从WSDL生成适当的代码。也就是说,在Web服务前面添加接口是相当浪费时间的。
尖头发的老板决定他希望应用程序以不同的方式工作,在不同的屏幕序列中,因为:
-
他妻子在网球俱乐部的朋友认为这样会更好。
-
严格的用户测试表明基于不同的应用程序流程或使用步骤顺序的更高的客户转化率。
-
你想提供白标版本的网站(类似于特许经营)。
在上述情况下,只需要重写图形元素,这样做的人不需要了解数据库或复杂的后端数据处理。
分离接口和实现可以帮助您保持设计松散耦合。当需求发生变化时,您可以独立于接口更改实现。