DesignPatterns에서 BehavioralPatterns의 하나. 시스템의 각 상태를 클래스로 표현한다. 상태변화는 상태를 나타내고 있는 클래스를 교체하는것으로 표현한다. == Structure == == Example == [[AWT]]로 만든 [[GUI]]금고상황보여주기 예제 [[StateSafe.java]] * 금고는 주간/야간에 따라 use,phone,alarm이 다르게 행동한다. * StatePattern을 안쓰면 주간/야간은 if 문 안으로 들어갈것이다. * state역할은 SingletonPattern이 쓰인다. * 프로그램안에서 1초는 1시간 * doClock에서 현재상태를 점검하고 changeState메쏘드로 상황을 바꾼다. == 관련정보 == Wiki:StatePattern Moa:StatePattern == 논의 == 다수의 if, else if로 표현되는 각 상태들을 클래스로 추출한다. SeeAlso Seminar:WhySwitchStatementsAreBadSmell ---- CategoryPattern