在服务层上使用接口

时间:2015-02-24 10:21:06

标签: java model-view-controller

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

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

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:3)

来自documentation

  

实现接口允许类变得更正式   它承诺提供的行为。接口形成合同   在班级和外部世界之间,这个合同是强制执行的   在构建时由编译器构建。

如果您知道只有一个实现,那么实现本身将定义合同,因此您可以删除接口。

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