옵저버 패턴

2024. 5. 30. 13:42면접을 위한 cs 전공지식 노트/디자인 패턴

옵저버 패턴?

 

옵저버 패턴은 객체의 상태 변화를 관찰하는 관차자들, 즉 옵저버들의 목록을 객체에 등록하여 상태 변화가 있을 때마다 메서드 등을 통해 객체가 직접 목록의 각 옵저버에게 통지하도록 하여 자동으로 내용이 갱신되는 일대다 의존성을 가진 디자인 패턴이다.

 

 

 

사용

 

  • 분산 이벤트 핸들링 시스템
  • 이벤트 기반 프로그래밍

특정 행동이 자동으로 / 순서에 따라 발생하는 것이 아닌 어떤 일에 대한 반응으로 동작.

 

 

 

 

장점

 

  1. 실시간으로 한 객체의 변경사항을 다른 객체에 전파할 수 있다. (트위터, 유튜브)
  2. 느슨한 결합(Loose Coupling)을 사용한다.

 

 

 

단점

 

  1. 너무 많이 사용할 경우 상태 관리가 힘들 수 있다.
  2. 데이터 배분에 문제가 발생하면 큰 문제로 발전할 수 있다.

 

 

Loose Coupling

 

  • 클래스를 느슨하게 결합하여 새로운 기능을 개발하거나 기존 기능을 수정하고 확장하는게 쉽다.
  • 유지 보수가 쉽다.
  • 메모리 사용을 줄일 수 있다.

 

이것을 사용하는 장점으로

  1. 옵저버를 언제든 새로 추가, 제거할 수 있다.
  2. 새로운 형식의 옵저버라 할 지라도 주제를 전혀 변경할 필요가 없다.
  3. 주제와 옵저버는 서로 독립적으로 재사용 할 수 있다.
  4. 주제나 옵저버가 바뀌더라도 서로에게 영향을 미치지 않는다.

 

 

 

 

'면접을 위한 cs 전공지식 노트 > 디자인 패턴' 카테고리의 다른 글

이터레이터 패턴  (0) 2024.06.03
프록시 패턴과 프록시 서버  (0) 2024.05.31
전략 패턴  (0) 2024.05.29
팩토리 패턴  (0) 2024.05.28
싱글톤 패턴  (0) 2024.05.27