옵저버 패턴
2024. 5. 30. 13:42ㆍ면접을 위한 cs 전공지식 노트/디자인 패턴
옵저버 패턴?
옵저버 패턴은 객체의 상태 변화를 관찰하는 관차자들, 즉 옵저버들의 목록을 객체에 등록하여 상태 변화가 있을 때마다 메서드 등을 통해 객체가 직접 목록의 각 옵저버에게 통지하도록 하여 자동으로 내용이 갱신되는 일대다 의존성을 가진 디자인 패턴이다.
사용
- 분산 이벤트 핸들링 시스템
- 이벤트 기반 프로그래밍
특정 행동이 자동으로 / 순서에 따라 발생하는 것이 아닌 어떤 일에 대한 반응으로 동작.
장점
- 실시간으로 한 객체의 변경사항을 다른 객체에 전파할 수 있다. (트위터, 유튜브)
- 느슨한 결합(Loose Coupling)을 사용한다.
단점
- 너무 많이 사용할 경우 상태 관리가 힘들 수 있다.
- 데이터 배분에 문제가 발생하면 큰 문제로 발전할 수 있다.
Loose Coupling
- 클래스를 느슨하게 결합하여 새로운 기능을 개발하거나 기존 기능을 수정하고 확장하는게 쉽다.
- 유지 보수가 쉽다.
- 메모리 사용을 줄일 수 있다.
이것을 사용하는 장점으로
- 옵저버를 언제든 새로 추가, 제거할 수 있다.
- 새로운 형식의 옵저버라 할 지라도 주제를 전혀 변경할 필요가 없다.
- 주제와 옵저버는 서로 독립적으로 재사용 할 수 있다.
- 주제나 옵저버가 바뀌더라도 서로에게 영향을 미치지 않는다.
'면접을 위한 cs 전공지식 노트 > 디자인 패턴' 카테고리의 다른 글
이터레이터 패턴 (0) | 2024.06.03 |
---|---|
프록시 패턴과 프록시 서버 (0) | 2024.05.31 |
전략 패턴 (0) | 2024.05.29 |
팩토리 패턴 (0) | 2024.05.28 |
싱글톤 패턴 (0) | 2024.05.27 |