[디자인 패턴] State패턴[상태 패턴]

2019. 1. 31. 15:16카테고리 없음

State패턴


State는 코드내의 상태를 클래스로 분류하여 상태에 따라 다른 실행결과가 만들게 해주는 패턴이다. 


얘기만 들어보면 이전에 공부했던 전략패턴이랑 비슷한 느낌이 든다. 하지만 둘에게는  현저히 다른 차이점이 있다.


State 패턴 

클라이언트가 아닌 코드 내부의 분기에 의해서 상태가 변한다. 


strategy 패턴

클라이언트가 전략을 선택하여 코드를 실행시킬 수 있다. 


상태를 나누면 가져올 장점이 무엇이 있을까?

특정한 문제를 한번에 다 풀려고 한다면 큰 어려움이 발생합니다. 분할해서 코딩을 하게되면 작은문제 부터 차근차근 해결하게됩니다. 여기서도 분할없이 사용하게 된다면 if Else문을 통해서 엄청나게 긴 분기가 발생할 수 있습니다. 


상태에 의존한 처리


아직 예제 코드를 작성하지 않았지만 상태 객체에게 의존하여 코드가 실행됩니다. -> 상태에 따라서 동작이 달라지는 상황이 생깁니다. 




파이썬은 추후에 올리겠습니다.