에릭 프리먼 님의 "헤드퍼스트 디자인 패턴" 책을 정리한 포스팅 입니다1. 상태 기계상태에 따라 시스템의 행동이 달라지고, 상태 전이는 명확하게 정의된 규칙에 따라 일어남구성 요소설명상태 모음시스템이 가질 수 있는 여러 상태들을 정의함 (Idle, Running, Paused, Finished 등)상태 표현 변수현재 상태를 나타내는 인스턴스 변수 (State currentState;) 등행동 모음상태에 따라 달라지는 행동들을 정의함 (start(), pause(), reset() 등) 예제: GumballMachine만약 상태가 추가될 경우, 상태에 의존하는 모든 코드들에 분기 코드가 추가되어야 함 예제) GumballMachine더보기public class GumballMachine { final..