Study/Effective-Java
[item#22] 인터페이스는 타입을 정의하는 용도로만 사용해라
728x90
반응형
- 상수를 정의하는 용도로 인터페이스를 사용하지 말 것!
- 클래스 내부에서 사용할 상수는 내부 구현에 해당
- 내부 구현을 클래스의 API로 노출하는 행위가 된다.
- 클라이언트에게 혼란을 줌
- 상수를 정의하는 방법
- 특정 클래스나 인터페이스
- 열거형
- 인스턴스화 할 수 없는 유틸 클래스
위와 같은 패턴을 안티패턴이라고 함(namespace없이 사용하는..) -> 인터페이스의 원래의도를 오염시키기 때문에 권장 하지 않음
인터페이스의 가장 중요한 의도는 타입을 정의하는 것
상수를 정의하는 방법은 밑에와 같이 권장.
public final class PhysicalConstants {
private PhysicalConstants() {
}
static final double AVOAGDROS_NUMBER = 6.022_140_421;
}
728x90
반응형
'Study > Effective-Java' 카테고리의 다른 글
[item#24] 멤버 클래스는 되도록 static으로 만들라 (0) | 2023.11.30 |
---|---|
[item#23] 태그 달린 클래스보다는 클래스 계층구조를 활용하라 (0) | 2023.11.30 |
[item#21] 인터페이스는 구현하는 쪽을 생각해 설계하라 (0) | 2023.11.30 |
[item#20] 추상 클래스보다는 인터페이스를 우선하라 (0) | 2023.11.29 |
[item#19] 상속을 고려해 설계하고 문서화하라. 그러지 않았다면 상속을 금지하라. (0) | 2023.11.29 |
댓글