SW 공학/::: 패턴

///[GoF] State Pattern

MG_ 2021. 9. 26. 11:45

상태를 클래스로 표현하기

 

* State Pattern

 

 

* 의도

   - 상태에 따라 다른 방법으로 동작하기 위해 객체의 상황을 행동과 연결한다

 

* 활용

   - 객체의 행동이 그것의 상태에 따라 동작해야만 할 때

   - 상태 전환이 명시적으로 필요할 때

 

* 디자인 원리

  - 변화는 것을 캡슐화 하라

  - 상속보다 compositoin 을 선호하라

 

 

- 전략 패턴을 기반으로 구현한다

- 전략 패턴과의 차이점 중 하나는 의도가 다르다

- Composition + Delegation

 

* 상태 패턴은 상태 기반의 행동들을 캡슐화하고 현재 상태에 행동을 위임한다

  전략 패턴은 교체가능한 동작을 캡슐화하고 어떤 행동을 사용할지 결정하기 위해 위임을 사용한다

  템플릿 메소드 패턴은 서브클래스들이 알고리즘의 스텝들을 어떻게 구현할지 결정한다