我已经做了一段时间的OOP,并且在几天前与同事争吵之后我对接口的用法感到困惑。
基本上,我在应用设计模式时一直在使用接口,尤其是当有多个类实现常用功能时。
在我的应用程序中,有Hibernate层和几个Sevices类,例如UserService
,CompanyService
等。
问题是我们是否为每个服务类保留了单独的接口。例如UserServiceContract
,CompanyContract
等
我的同事的观点是,没有必要有接口。
我在本教程中也遇到过,作者使用过接口。但是没有通用接口只实现一次几个类。 example interface implentation
使用接口的好处是在这种情况下,它改进了代码结构。是的,IDE功能显示了类可用的方法。但是,我仍然想让你的家伙对此有所了解。
答案 0 :(得分:4)
当您谈论设计模式和最佳编码实践时,需要并不是您应该问自己的。你不需要你做的大部分工作,至少不是立即做的。当然,在实际操作之前,您不知道是否需要不同的合同实现。所以这不是你现在需要什么的问题。这是一个关于你以后希望拥有什么的问题。
您在发布的链接中看到的是 SOLID 中的 D :Dependency Inversion Principle:
取决于抽象,而不是实现。
你知道,你比对不起更安全。
编辑:另外,我建议不要使用接口(或前缀)的sufix。如果您将使用界面而不是实现,请使界面名称清洁。在您的情况下,一个常见的选择是UserService
用于接口,UserServiceImpl
用于实现。