在使用Web服务时我们真的需要ServiceFacade设计模式吗?

时间:2015-10-15 07:20:01

标签: java web-services design-patterns

我想知道在使用网络服务时是否真的需要ServiceFacade设计模式。

http://soapatterns.org/design_patterns/service_facade

任何洞察力和代码段都非常有用。

提前致谢!!

2 个答案:

答案 0 :(得分:1)

立面的目的是提供一个面向前方(或客户端)的端点,该端点仅提供通信所需的内容,并隐藏其背后的任何内容。

拥有一个外观将允许您抽象您的行为而不暴露它。它还允许您进行更改,而不会影响端点本身。这显然取决于变化的类型,但是如果你有一些要求需要对逻辑进行一些改变,那么服务的实际输入和输出可能保持不变。

如果您在哪里取消服务外观,对代码的任何更改都可能要求您的客户端从他们的最终更新代码,而那些由于某种原因未更新的代码可能最终导致系统损坏或者其他你必须满足多个版本。

答案 1 :(得分:1)

服务门面设计模式不是强制使用Web服务。当您不想公开核心服务合同变更时,它是必需的。

工作原理

  1. 您将定义核心业务服务合同(CoreServiceContract)

  2. 您将定义该合约的实施(CoreServiceContractImpl)

  3. 您将定义一个面向客户的服务门面(ServiceFacade) 此ServiceFacade保存合同的引用 - CoreServiceContract

  4. 您将通过ServiceFacade调用CoreServiceContract中定义的方法。 CoreServiceContract保存CoreServiceContractImpl
  5. 的实现

    <强>优点:

    1)服务门面将服务定义与其实施隔离开来。

    2)这是将Web层与业务层分离的方式。

    3)从交易的角度来看,业务服务可以实现其交易范围或成为当前交易的一部分。

    4)Service Facade接口的合同面向Web层或客户端软件调用,但不应调用合同的方法 在业务实施中。

    查看本文了解code

    的工作原理