상태 패턴이란?- 객체의 내부 상태가 변할 때 객체의 행동이 동적으로 바뀌는 디자인 패턴- 한 객체가 주체 역할을 하고 다른 객체가 관찰자 역할을 맡는 객체 간의 일대다 관계를 설정하는 것이 핵심!!- 주체 역할을 맡은 객체는 내부에서 변경되었을 때 관찰자에게 알리는 책임을 진다.- 상태 패턴을 사용하면 조건문을 많이 사용하는 코드를 객체지향적으로 리팩토링할 수 있다. * Context 클래스 : 클라이언트가 객체 내부의 상태를 변경할 수 있도록 요청하는 인터페이스를 정의, 상태에 따라 행동이 달라지는 클래스* IState 인터페이스 : 특정 상태에서의 행동을 정의 (각 상태별로 필요한 행동을 캡슐화한 인터페이스)* ConcreteState 클래스(각 상태 구현) : IState 인터페이스를 구현, 상태..