이펙티브 자바 22 - 인터페이스 설계 방법

참치돌고래·2022년 7월 29일
0

인터페이스는 타입을 정희하는 용도로만 사용.

상수 인터페이스 안티 패턴

pubic interface PhysicalConstants{
	static final double AVOGADROS_NUMBER = 6.022_140_857e23;
    static final double BOLTZMANN_CONSTANT = 1.380_648_52e-23;
    static final double ELECTRON_MASS = 9.109_383_56e-31;

클래스 내부에서 사용하는 상수는 외부 인터페이스가 아니라 내부 구현에 해당.
인터페이스에 정의하는 것은 내부 구현을 클래스의 API로 노출하는 행위.

사웃를 공개하려면 유틸리티 클래스에 담아 공개.

상수 유틸리티 클래스

public class PhysicalConstants{
	private PhysicalConstants() {} // 인스턴스화 방지
    
	public static final double AVOGADROS_NUMBER = 6.022_140_857e23;
    public static final double BOLTZMANN_CONSTANT = 1.380_648_52e-23;
    public static final double ELECTRON_MASS = 9.109_383_56e-31;
}
profile
안녕하세요

0개의 댓글