我正在 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/