디자인 패턴 - Observer Design Pattern) 복습을 위해 작성하는 글 2023-04-28

rizz·2023년 4월 28일
0

디자인 패턴

목록 보기
1/4

📒 갈무리 - Observer Design Pattern

📌 Observer Design Pattern이란?

- 객체 사이에 일 대 다의 의존 관계를 정의해 두어, 어떤 객체의 상태가 변할 때 그 객체에 의존성을 가진 다른 객체들이 그 변화를 통지받고 자동으로 갱신될 수 있게 만드는 디자인 패턴

- 주로 분산 이벤트 핸들링 시스템을 구현할 때 사용된다.

 

📌 EX)

예를 들어, UI에 HP바를 어떠한 이벤트로 인해 변경되었을 때, 매 업데이트 마다 HP 값을 가져다가 화면에 출력하는 방법도 있지만, 매 업데이트 마다 하는 것이 아닌 HP가 변경(Dirty)될 때를 알려주고 그 알림을 받았을 때만 HP를 갱신하면 된다.

이렇게 한다면 UI는 순수하게 UI를 그려주는 기능만 하면 된다.

 

📌 Observer Design Pattern의 장단점

장점

- 옵저버 패턴을 구현하면 의존성이 있는 각 클래스 간 의존성을 없애고 단일 책임 원칙을 깔끔하게 지킬 수 있게 된다.

단점

- 옵저버를 등록하는 것과 제거하는 것이 런타임에 발생하는 경우에는 프로그래머가 특별히 신경을 써야한다. 그렇지 않으면 더이상 구독을 안하는 객체가 이벤트를 받는 현상, 또는 구독을 시작했던 타이밍에 이벤트를 받지 못하는 현상등이 쉽게 발생할 수 있다.

- 옵저버 패턴을 사용하는 클래스가 너무 많으면 통지가 연쇄적으로 일어나 상태 관리가 어려워지고 코드 가독성이 떨어진다.

profile
복습하기 위해 쓰는 글

0개의 댓글

관련 채용 정보