Spring / SpringBoot的每个Service都代表哪种设计模式?反对在每个Service上都有接口?
或者至少在给定接口使用两种不同的实现的情况下,将接口用于服务才有意义。
如果您的代码库中始终只有一个实现,那么使用接口有什么好处。
答案 0 :(得分:0)
我可以用以下方式回答您的问题:
如果您考虑SOLID principles,尤其是Interface Seggregation及其在面向对象设计中的重要性:
在面向对象的设计中,接口提供了抽象层,简化了代码并创建了防止耦合到依赖关系的障碍。
接口用于公开API合同,而不公开其实现。
但是,正如我之前所说,这取决于用例。 假设您正在构建一个库/框架,它可以公开同一接口的多个实现,或者允许用户添加其实现。然后,您当然应该具有接口。
另一方面,它也可能导致some overengineering的接口只有一个实现,您确定它不会有多个实现,并且不会在您的应用程序之外使用。然后也许您可以跳过它。
所以,从我的角度来看,这取决于。