state
-
[GoF]스테이트 패턴(State Pattern)Gof Design Pattern 2021. 12. 20. 21:12
스테이트 패턴(State Pattern) 스테이트 패턴이란? 클래스가 하나의 상태(state)에 따라 내부의 메서드의 기능이 바뀌는 경우(같은 기능에서 분기(if-else)발생)한다고 하면 이를 각각의 클래스로 분리하는 패턴이다. 스테이트 패턴 왜 사용할까? 객체의 기능이 어떤 상태에 있느냐에 따라 달라질 수 있는데(ex 자동차의 에코모드, 스포츠모드) 이러한 상태가 여러가지이면 if-else와 같은 분기로 표현이 되어 수정,삭제, 추가시 단점이 발생 할 수 있다. 이 때, 기능이 상태(특정 변수같은)에 의존적이라면 스테이트 패턴을 사용하여 클래스로 표현하는 것이 적절하다. 스테이트 패턴을 사용하게 되면 상태에 따라 기능을 분리하여 구현 새로운 상태 추가나 삭제가 용이함 클래스 다이어그램 객체 협력 Co..