Java接口应该只包含getter吗?

时间:2016-05-25 16:17:09

标签: java junit interface

我对界面使用有一些一般性问题:

  1. 为每个对象类创建界面有什么好处?
  2. 界面是否只包含“getter”'方法?
  3. 为什么不也是二传手?
  4. 为什么要为每个对象类创建一个接口?它会在JUnit测试中为我服务吗?
  5. 例如:

        public interface Animal {
          public getVoice();
          public String getName();
        }
    
    public class Dog implements Animal {
       private String name;
    
       public getVoice(){
          System.out.println("Brrr");
       }
       public String getName(){
          return this.name;
       }
       public void setName(String name){
          this.name = name;
      }
    
    }
    

    由于

2 个答案:

答案 0 :(得分:9)

  

为每个对象类创建界面有什么好处?

根本没有任何优势。这不是Interfaces的用途。

  

接口应该只包含'getter'方法吗?为什么不也是二传手呢?

只要是方法,接口就不关心它们的功能行为。

  

为什么要为每个对象类创建一个接口?

同样,这不是界面的目的。将其视为冗余

如果你了解interfaces是什么,你就会意识到它们的正确用法

  

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

答案 1 :(得分:3)

接口用于描述合同。要么是在应用程序中的内部使用,要么通过提供多个实现的抽象,或者可能将它们提供给外部实体以供它们实现。

接口中可以有任意数量的方法,它们的目的是在实现类上强制执行它们,因此合同得以维护。