개발 공부/컴퓨터 과학
[개발] Behaviours Design Pattern - Strategy Pattern, State Pattern
도이(doi)
2022. 5. 7. 20:24
728x90
Strategy Pattern
SOLID 패턴의 open closed 패턴과 유사함.
런타임에 알고리즘을 selecting 하게 해줌.
make speak() 함수 안에서는 특별한 if문 없이 animal 오브젝트 인터페이스가 함수 안으로 들어가서 그 오브젝트의 속성에 따라서 관련된 기능을 호출한다. make speak 함수는 Animal 인터페이스에 동물이 추가돼도 수정할 필요 없다. 확장에 대해서 open되어 있다.
State Pattern
우리가 만들고자 하는 오브젝트의 상태가 있다면 사용할 수 있음.
신호등 클래스를 정의. Traffic Light는 내부에 state 오브젝트를 가지고 있음. state 오브젝트는 신호등 내부의 상태를 나타내는 인터페이스가 됨. 그 상태는 '빨간불인 상태' '초록불인 상태'를 가지게 된다. 또한, 이 상태 오브젝트는 speak(), wait()라는 함수를 가짐.
Strategy Pattern과의 차이점
Strategy Pattern에서 Animal의 상속을 받는 객체는 서로의 존재를 몰라도 상관없음. 하지만, State Pattern은 서로의 상태에 대해서 알고 있어야 됨.
728x90
반응형