Java 인터페이스의 메소드를 공용 액세스 수정자를 사용하거나 사용하지 않고 선언해야합니까?


Answers

Java 인터페이스에서는 공개 수정자를 생략해야합니다 (제 의견으로는).

추가 정보를 추가하지 않으므로 중요한 정보로부터주의를 끕니다.

대부분의 스타일 가이드는 당신이 그것을 생략 할 것을 권할 것이지만, 물론 가장 중요한 것은 코드베이스, 특히 각 인터페이스에 대해 일관성을 유지하는 것입니다. 다음 예제는 자바에 100 % 유창하지 않은 사람을 쉽게 혼동 할 수 있습니다.

public interface Foo{
  public void MakeFoo();
  void PerformBar();
}
Question

public 액세스 수식 자의 유무에 관계없이 Java 인터페이스의 메소드를 선언해야합니까?

물론 기술적으로는 중요하지 않습니다. interface 를 구현하는 클래스 메소드는 항상 public 입니다. 그러나 더 나은 대회는 무엇입니까?

Java 자체는 일관성이 없습니다. 예를 들어 CollectionComparable 또는 Future vs. ScriptEngine 참조하십시오.




기본적으로 적용되는 수정자를 넣지 않아도됩니다. 지적했듯이, 불일치와 혼란을 야기 할 수 있습니다.

내가 본 최악의 경우 abstract 메소드 선언 인터페이스 ...




그것은 완전히 주관적입니다. 중복 된 public 수정자를 생략하여 혼란처럼 보입니다. 다른 사람들이 언급했듯이 일관성이이 결정의 핵심입니다.

C # 언어 디자이너가이를 적용하기로 결정한 점은 흥미 롭습니다. C #에서 공용 인터페이스 메서드를 public으로 선언하는 것은 실제로 컴파일 오류입니다. 일관성은 아마도 언어별로 중요하지 않으므로 자바와 직접적인 관련이 없다고 생각합니다.




나는 그것을 건너 뛰는 것을 선호한다. 나는 인터페이스가 기본적으로 public 되고 abstract 이라는 것을 읽었다.

놀랍게도 Head First Design Patterns 는 인터페이스 선언과 인터페이스 메소드를 public 으로 사용하고 있습니다. 다시 한 번 생각해 보았습니다.이 포스트에 착수했습니다.

어쨌든 중복 된 정보는 무시해야한다고 생각합니다.




나는 인터페이스가없고 직접 구현을 작성한다면 공용을 사용할 것이라고 항상 쓸 것이다.




Related