Class Member Design

클래스 멤버 결정표

필드, 메서드, 생성자, 정적 멤버를 역할별로 분리하면 클래스가 외부 API와 내부 상태를 더 명확하게 드러냅니다.

state

인스턴스 상태

객체마다 달라지는 값은 필드로 두고 생성자에서 초기화합니다.

behavior

인스턴스 동작

상태를 읽거나 바꾸는 로직은 인스턴스 메서드에 둡니다.

static

클래스 공통

객체 상태와 무관한 상수·유틸리티는 클래스 이름으로 접근합니다.

외부 API

public

호출자가 의존해도 되는 멤버만 공개하고, 나머지는 내부 구현으로 숨깁니다.

내부 불변식

private

잘못 바뀌면 객체가 깨지는 값은 메서드를 통해서만 갱신하게 만듭니다.