Post는 공개 메서드만 보이고 상태 전환 규칙은 State 객체가 숨긴다
초안, 검토, 게시 규칙은 비공개 상태 객체가 맡고 사용자는 Post의 제한된 메서드만 호출한다.
content는 비공개
승인 대기
content 공개
잘못된 순서 차단
| 구분 | 의미 | 판단 |
|---|---|---|
| 공개 표면 | Post 메서드 | 사용자가 호출 |
| 전환 규칙 | State trait 구현 | 내부에서 교체 |
| 불변식 | 게시 전 content 숨김 | 상태 객체가 보호 |
핵심 상태 패턴은 enum을 피하는 것이 아니라 상태별 규칙을 외부 API에서 숨기는 것이다.