[Effective Java] 인터페이스는 타입을 정의하는 용도로만 사용하라.


[Effective Java] 인터페이스는 타입을 정의하는 용도로만 사용하라.

인터페이스는 타입을 정의하는 용도로만 사용하라. 인터페이스는 자신을 구현한 클래스의 인스턴스를 참조할 수 있는 타입 역할을 한다. 즉, 클래스가 어떤 인터페이스를 구현한다는 것은 자신의 인스턴스로 무엇을 할 수 있는지를 클라이언트에 얘기해 주는 것이다. 인터페이스는 오직 이 용도로만 사용하자.! 위의 지침에 맞지 않는 예로 상수 인터페이스가 있다. 메서드 없이, 상수를 뜻하는 static final 필드로만 가득 찬 인터페이스를 말한다. public interface PhysicalConstants { public static final double AVOGADROS_NUMBER = 6.022_140_857e23; public static final double BOLTZMANN_CONSTANT = 1.380_648_52e-23; } 상수 인터페이스 안티 패턴은 인터페이스를 잘못 사용한 예이다. 클래스 내부에서 사용하는 상수는 외부 인터페이스가 아니라 내부 구현에 해당한다. 따라서 ...


#effiectivejava #interface #java #이펙티브자바 #인터페이스 #자바

원문링크 : [Effective Java] 인터페이스는 타입을 정의하는 용도로만 사용하라.