enum으로 닫힌 상태 표현하기 예제가 실행되는 순서
외부 코드를 팩터리에 전달에서 시작해 일치한 enum 또는 명시적 실패 반환까지 값과 책임이 이동한다.
-
1
외부 코드를 팩터리에 전달
매개변수가 enum 타입이면 호출자는 선언된 상수만 전달할 수 있습니다.
-
2
선언된 상수의 code와 비교
생성자와 필드, 메서드를 선언해 상태 코드나 표시 이름을 함께 보관합니다.
-
3
일치한 enum 또는 명시적 실패 반환
valueOf는 이름이 정확히 일치하지 않으면 예외를 냅니다.
실행 순서 선언 순서와 무관한 code 필드를 사용해 외부 값의 안정된 변환 경계를 만들었습니다.