如果只有一个实现,我是否需要一个接口?

时间:2015-12-19 19:18:43

标签: oop design-patterns interface

我已经做了一段时间的OOP,并且在几天前与同事争吵之后我对接口的用法感到困惑。

基本上,我在应用设计模式时一直在使用接口,尤其是当有多个类实现常用功能时。

在我的应用程序中,有Hibernate层和几个Sevices类,例如UserServiceCompanyService等。 问题是我们是否为每个服务类保留了单独的接口。例如UserServiceContractCompanyContract

我的同事的观点是,没有必要有接口。

我在本教程中也遇到过,作者使用过接口。但是没有通用接口只实现一次几个类。 example interface implentation

使用接口的好处是在这种情况下,它改进了代码结构。是的,IDE功能显示了类可用的方法。但是,我仍然想让你的家伙对此有所了解。

1 个答案:

答案 0 :(得分:4)

当您谈论设计模式和最佳编码实践时,需要并不是您应该问自己的。你不需要你做的大部分工作,至少不是立即做的。当然,在实际操作之前,您不知道是否需要不同的合同实现。所以这不是你现在需要什么的问题。这是一个关于你以后希望拥有什么的问题。

您在发布的链接中看到的是 SOLID 中的 D Dependency Inversion Principle

  

取决于抽象,而不是实现。

你知道,你比对不起更安全。

编辑:另外,我建议不要使用接口(或前缀)的sufix。如果您将使用界面而不是实现,请使界面名称清洁。在您的情况下,一个常见的选择是UserService用于接口,UserServiceImpl用于实现。