DesignPatterns에서 BehavioralPatterns의 하나.

시스템의 각 상태를 클래스로 표현한다. 상태변화는 상태를 나타내고 있는 클래스를 교체하는것으로 표현한다.

Structure

Example

AWT로 만든 GUI금고상황보여주기 예제 StateSafe.java

  • 금고는 주간/야간에 따라 use,phone,alarm이 다르게 행동한다.
  • StatePattern을 안쓰면 주간/야간은 if 문 안으로 들어갈것이다.

  • state역할은 SingletonPattern이 쓰인다.

  • 프로그램안에서 1초는 1시간
  • doClock에서 현재상태를 점검하고 changeState메쏘드로 상황을 바꾼다.

관련정보

StatePattern StatePattern

논의

다수의 if, else if로 표현되는 각 상태들을 클래스로 추출한다. SeeAlso WhySwitchStatementsAreBadSmell


CategoryPattern

StatePattern (last edited 2012-10-08 16:27:40 by 61)

web biohackers.net