Java中的接口优势

Adr*_*ian 16 java interface

我的问题很简单:如果它们是由单个类实现的,那么使用接口是否有任何优势?
我一直认为只有当该接口有多个实现时,接口才是好的.

谢谢.

SJu*_*n76 11

总之一句:不.接口的合同可以直接在您的类中指定.

如果您明确表示将来不需要再使用相同方法,则可以避免定义接口.

当然,这里的问题是"未来"条款.如果项目很小,没有很长的开发/升级期,并且定义明确,那么您几乎可以确定将来需要什么.

如果项目很长,可能会发生变化,那么你将不得不考虑:

  • 你最终需要一个接口的概率.
  • 你现在知道接口将来需要什么方法的概率.
  • 现在做界面的成本与未来的重构有关.


Chr*_*ght 6

考虑到现在可能只有一个实现,但将来可能会出现更多的实现.此外,通过使用接口,您可以通过仅使用接口来避免创建对具体类的依赖性.然后,稍后,如果您决定更改实现,则可以创建一个实现接口的新实现,而不会对仅依赖于您的接口的其他代码产生不利影响.

考虑:

public interface SomeInterface {...}

public class AConsumerOfSomeInterface {
    private SomeInterface service;

    public AConsumerOfSomeInterface(SomeInterface theImplementation) {
        service = theImplementation;
    }
    //some code which uses the service
}
Run Code Online (Sandbox Code Playgroud)

现在,您可以在未来更改此类的情况下交换实现.因为这很容易做到,即使您认为不需要接口也很有意义.