디자인 패턴 - 옵저버 패턴(Observer Pattern)
디자인 패턴이란?
디자인 패턴이란? 게시글을 참고하자.
생성(Creational) 패턴 | 구조(Structural) 패턴 | 행동(Behavioral) 패턴 |
---|---|---|
Singleton | Adapter | Command |
Abstract Factory | Composite | Interpreter |
Factory Method | Decorator | Iterator |
Builder | Facade | Mediator |
Prototype | Flyweight | Memento |
Proxy | Observer | |
State | ||
Strategy | ||
Template Method |
옵저버 패턴
옵저버 패턴은 객체의 상태 변화를 관찰하는 관찰자들(옵저버들)의 목록을 객체에 등록해 상태 변화가 있을 시에 메서드등을 통해 객체가 각 목록의 옵저버에게 통지하는 디자인 패턴을 말한다.
다시 말해 객체가 변할 시 알림을 주는 디자인 패턴이라고 보면 된다.
유튜브로 예를 들어보자면, 유튜버가 방송을 시작하거나 동영상을 업로드했을 때 구독자들에게 ‘알람’이 가는거라고 보면 된다.
특징
옵저버 패턴에서는 객체 간 강한 결합(A가 변할 시 B의 상태가 변하는, 의존성의 문제가 있다)보다 느슨한 결합으로 만들 수 있다
느슨한 결합
느슨한 결합이란 그 둘이 상호작용을 하지만 서로에 대해 잘 모르는 것을 의미한다.
느슨한 결합을 사용하면
- 옵저버를 언제든 추가, 제거할 수 있음
- 새로운 형식의 옵저버에 주제를 변경할 필요가 없음
- 주제-옵저버는 서로 독립적으로 재사용할 수 있음
- 주제나 옵저버가 바뀌더라도 서로에게 영향을 끼치지 않음
서로 상호작용을 하는 객체 사이에서는 가능한 느슨한 결합을 사용한다
느슨한 결합은 시스템의 유지보수를 용이하게 하고, 전체 프레임워크를 안정적으로 만들어 시스템의 유연성을 증가시킬 수 있다.
댓글남기기