State Pattern(스테이트 패턴)이란, 일련의 규칙에 따라 객체의 상태(State)를 변화시켜, 객체가 할 수 있는 행위를 바꾸는 패턴이다. 상태에 따라 행동이 변화하는 객체엔 모두 적용할 수 있다. 이번 기회에 스테이트 패턴을 적용하여 알람 시계를 한 번 만들어 보도록 하자. 기능은 단순하게 normal, alarm상태 두 가지로 한정한다. State 패턴의 핵심은 상태를 인터페이스로 분리시키는 것이다. 따라서 상태들을 유연하게 관리할 수 있기 때문에 유지 보수에 효율적이다. 우선 시계의 상태를 인터페이스로 정의해보자. 시계는 normal(보통일 때의 상태), 와 alarm(알람이 울릴 때 상태) 두가지 경우를 가지고 있다. 우리가 만들고자하는 Clock 클래스를 구현해보자. State 패턴에서..