我在Spring Boot REST API项目中具有DAO接口和DAOImpl类。但是我的一些队友告诉我,不必在REST API中具有接口。
他们的论据是,如果代码以.jar文件(例如,数据库驱动程序jar文件)共享,则必须具有接口。由于jar是添加到类路径中的,因此最终用户可以覆盖jar文件中定义的方法。 REST API部署在服务器中,并且可以由任何编程语言通过HTTP来使用
我知道对此没有具体答案。但是我只想知道在REST API /微服务中具有接口的优缺点
答案 0 :(得分:0)
使用接口的优势在于,当您使用所有Rest API通用的服务时,例如带有spring-security的安全服务。
答案 1 :(得分:0)
“接口”不是特定于REST API(或Spring)的,它是面向对象的原理之一,用Java编程术语来说,它是“接口”。
您的朋友部分是真实的。
通常,“接口”用于定义“协议”,并使实现特定于“实现器”。
现在我可以提出一个相反的论点,如果您的公司想要标准化该DAO业务规范(忘记共享为.jar或其他名称)的“部门”(或)“项目”之间的流程,该怎么办?
答案 2 :(得分:0)
在这种情况下,Interface是最佳实践,需要1分钟才能实现。
答案 3 :(得分:0)
一旦我对一家英国公司进行了招聘测试,便得到了以下反馈:
“还有可怕的Impl类……”
这时,我开始质疑微服务中接口的使用,在微服务中,所有内容都是通过HTTP访问的。经过思考,我意识到我从未遇到过接口在这种情况下真正有用的情况。
我建立了一些没有它们的个人项目(除非Spring要求),而且我很喜欢。能够在不被IDE涂成红色的情况下更改服务是一大优势。
此外,需要维护的代码更少。我会为新项目投赞成票。