CS/Design Pattern

    [Design Pattern] 상태 패턴(State Pattern)

    State 패턴 하나의 객체가 다양한 상태를 가질 때가 있습니다. 또한, 상태가 변화함에 따라 행위가 달라질 수 있습니다. 만약 어떤 상태에 대한 `행위를 클래스별로 구현`해주어야 한다면 상당한 `보일러플레이트 코드`가 발생할 것입니다. 이는 곧 프로젝트의 유지보수성을 떨어뜨리는 것과 동일합니다. 이러한 상황을 쉽게 관리하기 위해 State 패턴을 사용할 수 있습니다. State 패턴은 `상태에 따른 비즈니스 로직`, `상태 전이`를 상태 클래스 내에서 관리합니다. 이러한 상태를 가지고 있는 객체를 `Context`라고 부릅니다. State 패턴을 적용하면 Context는 각 상태에 따라 어떤 기능을 수행할지 고려하지 않아도 됩니다. State 패턴을 적용하지 않은 사례 // 자동차는 아래와 같은 상태를..