본문 바로가기
공부

[CS 공부] 디자인 패턴 - 전략 패턴, 옵저버 패턴

by 잰쟁 2023. 12. 10.
728x90

 

3. 전략 패턴(strategy pattern)

: aka. 정책 패턴(policy pattern

: 객체의 행위를 바꾸고 싶은 경우 '직접' 수정하지 않고 전략이라고 부르는 '캡슐화한 알고리즘'을 컨텍스트안에서 바꿔주면서 상호 교체가 가능하게 만드는 패턴

 

EX) 어떤 것을 구매할 때 네이버페이, 카카오페이 등 다양한 방법으로 결제하는 것

      (결제 방식의 '전략'만 바꿔섯 두 가지 이상의 방식으로 결제하는 것)

 

**컨텍스트

: 프로그래밍에서의 컨텍스트는 상황, 맥락, 문맥을 의미.

: 개발자가 어떠한 작업을 완료하는 데 필요한 모든 관련 정보를 말함.

 

 


 

4. 옵저버 패턴(observer pattern)

 

주체가 어떤 객체의 상태 변화를 관찰하다가 상태 변화가 있을 때마다 메서드 등을 통해 옵저버 목록에 있는 옵저버들에게 변화를 알려주는 패턴

(객체, 주체는 분리되어 있을 수도 합체되어 있을 수도 있음)

 

더보기

**주체 - 객체의 상태 변화를 보고 있는 관찰자

**옵저버 - 객체의 상태 변화에 따라 전달되는 메서드 등을 기반으로 '추가 변화 사항'이 생기는 객체들

 

: 옵저버 패턴은 주로 이벤트 기반 시스템에 사용하며, 'MVC(Model-View-Controller) 패턴'에도 사용됨.

(Model에서 변경사항이 생기면 Update() 메서드로 옵저버인 View에게 알려주고 이를 기반으로 Controller등이 작동)

 

옵저버 패턴 구조