상태와 알고리즘 무슨 얘기인지 싶을 것이다. 스테이트 패턴과 스트레티지 패턴에 대한 얘기다.
if문 혹은 switch 문에 의한 분산처리가 많을 경우 리팩토링시 두 패턴을 고려하는 경우가 많다.
근데 이게 참 미묘하다. 한쪽은 상태값에 따른 처리를 위해서 존재한다고 하고
한쪽은 알고리즘에 따른 처리를 위해 존재한다고 하는데 시스템 전반에 걸쳐 내용을 알지 못하면
이것이 어떤 패턴을 고려해야 할지 어렵게 느껴진다. (우선 경험의 차이라 보겠다.)
스테이트 패턴과 스트레티지 패턴은 미묘하게 닮아있다.
이둘은 하나의 패턴으로 파생되어 상태와 알고리즘이란 목적에 따라 나뉘게 되었다.
하나씩 보면 끄덕거려 지는데 둘을 섞어놓으면 너무나 닮은 모습에 혼돈이 오곤한다.
그래서 결론은... 상황에 따라 잘 맞는 패턴을 선택하라!!!!
<<스트레티지 패턴 클래스 다이어그램>>
<<스테이트 패턴 클래스 다이어그램>>
if문 혹은 switch 문에 의한 분산처리가 많을 경우 리팩토링시 두 패턴을 고려하는 경우가 많다.
근데 이게 참 미묘하다. 한쪽은 상태값에 따른 처리를 위해서 존재한다고 하고
한쪽은 알고리즘에 따른 처리를 위해 존재한다고 하는데 시스템 전반에 걸쳐 내용을 알지 못하면
이것이 어떤 패턴을 고려해야 할지 어렵게 느껴진다. (우선 경험의 차이라 보겠다.)
스테이트 패턴과 스트레티지 패턴은 미묘하게 닮아있다.
이둘은 하나의 패턴으로 파생되어 상태와 알고리즘이란 목적에 따라 나뉘게 되었다.
하나씩 보면 끄덕거려 지는데 둘을 섞어놓으면 너무나 닮은 모습에 혼돈이 오곤한다.
그래서 결론은... 상황에 따라 잘 맞는 패턴을 선택하라!!!!
<<스트레티지 패턴 클래스 다이어그램>>
<<스테이트 패턴 클래스 다이어그램>>