java - Spring 中的服务外观

标签 java spring design-patterns facade

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

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

具有包私有(private)服务(接口(interface)和实现)。是否可能或者我必须将所有类放入一个包中?

最佳答案

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

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

在这种情况下,您似乎是在同一个 Spring 应用程序中创建服务的外观,这对我来说并没有真正的意义。

当您可以控制服务定义时,为什么还要创建外观?

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

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

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

关于java - Spring 中的服务外观,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51689253/

相关文章:

java - 如何在 spring 中找到与 spring.xml 不在同一级别的文件?

java - 是什么导致 org.hibernate.PropertyAccessException : Exception occurred inside setter

c# - 工厂模式与我的无能。帮我看看光

rest - 休息应用程序中的用户上下文

java - 如何使上下文菜单在 javaFX 的 TreeView 上工作?

java - 跟踪实例属性更改

java - 如何在 java 中使用其他基数?

java - 决定在 Spring Boot 应用程序中使用多个实现中的哪一个

c# - 如何使用Azure Gatekeeper设计模式?

java - 拦截器出错时如何将控件从拦截器重定向到jsp