服务层接口的使用

Emi*_*and 5 java model-view-controller

在我们的项目架构中,我们使用经典的 MVC 模式,包括经典的服务层(打开事务并调用 DAO 层)。

对于每个服务,我们都有一个实现和他的接口。但说实话,我很确定对于一个服务和他的接口,我们永远不会有多个实现。好吧,也许在接口中声明公共方法有助于了解服务的作用更清楚,但是一个接口用于有多个实现,如果我们知道我们不会有多个实现,我们应该保持他们?

ant*_*nio 6

文档中:

实现接口允许类对其承诺提供的行为变得更加正式。接口在类和外部世界之间形成契约,并且该契约由编译器在构建时强制执行。

如果您知道您只有一个实现,则该实现本身将定义契约,因此您可以删除接口。

但是编写接口可以帮助您更好地定义契约,而且您可能需要在给定点为服务编写模拟,在这种情况下,您将从接口的使用中受益。


小智 5

我认为这是保持接口的好方法。

原因: 1. 说你想用不同的实现来编写相同的 junits,例如。尽管从数据库获取数据,但您希望从单独的数据源获取数据,那么不同的实现就足够了。

  • 问题是关于服务层中的接口而不是关于DAO(数据访问)层。 (2认同)