春季服务立面

时间:2018-08-04 20:15:28

标签: java spring design-patterns facade

我正在Spring中开发我的第一个应用程序,但是我遇到了设计问题。我已经创建了一些我想通过一些外观使用的服务(这是个好主意吗?)。 我想要这样的结构

/services
  /facades
    /interfaces
      **facades**
    /implementations
      **sampleFacades**
  /interfaces
    **services**
  /implementations
    **sampleServices**

具有程序包专用服务(接口和实现)。有可能还是我必须将所有类都放在一个包中?

1 个答案:

答案 0 :(得分:0)

Facade Pattern旨在创建对更复杂代码的简化且专用的访问。

通常,您将有一个由其他人创建的API,然后您将创建自己的自定义API来使用其他API。

在这种情况下,您似乎在同一Spring Applicaiton中为Services创建了外观,对我而言这没有任何意义。

在控制服务定义时为什么要创建外观?

如果您需要为自己的服务使用外观,也许它们没有在正确的粒度级别上定义?

请注意,服务的某些复杂性应通过其他模式来解决,例如由服务协调的Data Access Objects

关于将所有类放入同一包的问题,​​请考虑Domain Driven Design的有界上下文,并围绕域而不是实现细节来组织代码。