Java/Java 자료실

[디자인 패턴] 11. 스테이트 패턴 ( State Pattern )

Chipmunks 2018. 12. 19.
728x90

스테이트 패턴 ( State Pattern )

객체 내부의 상태에 따라서, 객체가 다른 행동을 할 수 있게 해줍니다. 따라서, 객체의 상태만 변경해줘도 다른 행동을 하는 객체가 됩니다.

클래스 다이어그램


Strategy 패턴과 차이점

처음에 배운 Strategy 패턴의 다이어그램은 다음과 같습니다.



State 패턴과 클래스 다이어그램이 매우 흡사합니다. 다른 점은 그 '목적' 입니다.


State 객체는 각 상태에 따른 행동을 캡슐화 합니다. 그리고 상태는 시간이 지나면 변화합니다.

Strategy 객체는 알고리즘을 캡슐화 합니다. 서브클래스의 대안으로 매우 유연합니다.

댓글