욱'S 노트

State - 클래스로 상태 표현하기 본문

Methdology/Design Pattern

State - 클래스로 상태 표현하기

devsun 2012. 4. 27. 18:46
When Using It

조건에 따른 상태 자체를 클래스로 표현하고 싶을때

Class Diagram



Sample Code

public interface State {

public void handle(Context context, boolean condition);

}


public class ConcreteState implements State {

@Override

public void handle(Context context, boolean condition) {

if (condition) {

System.out.println("ConcreteState Handled.");

} else {

context.setState(new ConcreteState2());

}

}

}


public class ConcreteState2 implements State {

@Override

public void handle(Context context, boolean condition) {

if (condition) {

System.out.println("ConcreteState2 Handled.");

} else {

context.setState(new ConcreteState());

}

}

}


public class Context {

private State state; 

public void request() {

state = new ConcreteState();

state.handle(this, false);

state.handle(this, true);

}


public void setState(State state) {

this.state = state;

}

}


Caution


특별한 주의사항은 없다.
Comments