[아이템 22, 23] 인터페이스는 타입을 정의하는 용도로만 사용하라, 태그 달린 클래스보다는 클래스 계층구조를 활용하라
아이템 22 인터페이스는 타입을 정의하는 용도로만 사용하라 메서드 없이 상수 필드만 가득한 상수 인터페이스를 만들지마라. 안티 패턴이다. 상수 인터페이스의 구현은 외부 인터페이스가 아닌 내부 구현에 해당한다. 즉, 내부 구현을 외부로 노출하는 꼴이다. 이는 사용자에게 혼란을 주며 클라이언트 코드가 내부구현에 해당하는 상수에 종속적이게 될 수 있다. 상수를 공개하고 싶다면 상수전용 인터페이스를 구현하지 말고 그와 연관된 클래스나 인터페이스에서 공개하도록 하자. 아니면 인스턴스화를 막은 클래스에 담아서 공개하자. public final class StringConstants{ public static final String BLANK = ""; private StringConstants(){} } 아이템 2..
Reading Record/이펙티브자바
2020. 4. 14.