IT/Programming / / 2023. 4. 27. 09:43

<Effective Java> RULE 19 인터페이스는 자료형을 정의할 때만 사용하라

반응형

 

상수 인터페이스

interface PhysicalConstants{
    static final double AVOGADROS_NUMBER = 6.02214199e23;
    static final double BOLTZMANN_CONSTANT = 1.3806503e-23;
    static final double ELECTRON_MASS = 9.10938188e-31;
}
 

상수 인터페이스는 잘못 사용한 것!

- 클래스가 어떤 상수를 어떻게 사용하느냐 하는것은 구현의 세부사항이다.

- 상수 정의를 인터페이스에 포함시키면 구현세부사항이 클래스의 공개 API에 스며들게 된다.

- 하위 클래스에도 인터페이스의 상수들로 오염된다.

- 상수 유틸리티 클래스를 사용하도록 한다.

 

상수 유틸리티 클래스

class PhysicalConstansNew{
    private PhysicalConstansNew() {}

    static final double AVOGADROS_NUMBER = 6.02214199e23;
    static final double BOLTZMANN_CONSTANT = 1.3806503e-23;
    static final double ELECTRON_MASS = 9.10938188e-31;
}
 
public class Rule19 {
    public static void main(String[] args) {
        double hello = PhysicalConstansNew.AVOGADROS_NUMBER;
    }
}
 
import static Rule19.PhysicalConstansNew.*;

...

public class Rule19 {
    public static void main(String[] args) {
        double hello = AVOGADROS_NUMBER;
    }
}
 

 

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유