【问题标题】:Does it make sense to use on every spring boot service an interface?在每个 Spring Boot 服务上使用一个接口是否有意义?
【发布时间】:2019-11-26 16:07:08
【问题描述】:
哪种设计模式适合在 Spring / SpringBoot 中的每个服务上都有一个接口?
或者,如果您至少对给定接口使用两种不同的实现,那么将接口用于服务是否才有意义。
如果您的代码库中始终只有一个实现,那么使用接口有什么好处。
【问题讨论】:
标签:
spring
spring-boot
design-patterns
coding-style
clean-architecture
【解决方案1】:
我可以回答你的问题:这取决于。
如果您考虑SOLID principles,尤其是Interface Seggregation,以及它在面向对象设计中的重要性:
在面向对象的设计中,接口提供了抽象层,可以简化代码并创建防止耦合到依赖项的屏障。
接口用于公开 API 合约而不公开其实现。
但是,正如我之前所说,这取决于用例。
假设您正在构建一个库/框架,它可以为同一接口公开多个实现或允许用户添加他们的实现。那么你肯定应该有接口。
另一方面,它也可能导致some overengineering,您的接口只有一个实现,您确定它不会有多个实现,并且不会在您的应用程序之外使用。那么也许你可以跳过它。
所以,从我的角度来看,这取决于。