Closed madplay closed 5 years ago
public interface PhysicalConstants { static final double AVOGADROS_NUMBER = 6.022_140_857e23; static final double BOLTZMANN_NUMBER = 1.380_648_52e-23; static final double ELECTRON_NUMBER = 9.109_383_56e-31; }
public class PhysicalConstants { private PhysicalConstants() {} static final double AVOGADROS_NUMBER = 6.022_140_857e23; static final double BOLTZMANN_NUMBER = 1.380_648_52e-23; static final double ELECTRON_NUMBER = 9.109_383_56e-31; }
public class Test { double atoms(double mols) { return PhysicalConstants.AVOGADROS_NUMBER * mols; } }
import static PhysicalConstants.*;
public class Test { double atoms(double mols) { return AVOGADROS_NUMBER * mols; } }
## 결론 > 인터페이스는 타입을 정의하는 용도로만 사용해야 한다. 상수 공개용 수단으로 사용하지 말자.
잘못 사용된 경우
상수 인터페이스
상수를 공개할 목적 대안책
클래스나 인터페이스 자체에 추가
열거 타입(#34)
유틸리티 클래스(#4)
public class Test { double atoms(double mols) { return AVOGADROS_NUMBER * mols; } }