Skip to content

옵저버 패턴 #
Find similar titles

옵저버 패턴(Observer Pattern)에서는 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에게 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다(ont-to-many) 의존성을 정의하는 디자인 패턴의 하나이다.

일대다 관계는 주제와 옵저버에 의해 정의된다. 옵저버는 주제(subject)에 의존한다. 주제의 상태가 바뀌면 옵저버에게 연락이 간다. 연락 방법에 따라 옵저버에 있는 값이 새로운 값으로 갱신될 수 있다.

옵저버 패턴을 구현하는 방법에는 여러 가지가 있지만, 대부분 주제(Subject) 인터페이스와 옵저버 인터페이스가 들어있는 클래스 디자인을 바탕으로 한다.

두 객체가 느슨하게 결합되어 있다는 것은, 그 둘이 상호작용을 하긴 하지만 서로에 대해 서로 잘 모른다는 것을 의미한다. 옵저버 패턴에선 주제와 옵저버가 느슨하게 결합되어 있는 객체 디자인을 제고한다.

옵저버 패턴의 특징 #

  • 주제가 옵저버에 대해 아는 것은 옵저버가 특정 인터페이스(Observer 인터페이스)를 구현한다는 것 뿐이다.
  • 옵저버는 언제든지 새로 추가할 수 있다.
  • 새로운 형식의 옵저버를 추가하려고 할 때도 주제를 전혀 변경할 필요가 없다.
  • 주제와 옵저버는 서로 독립적으로 재사용할 수 있다.
  • 주제나 옵저버가 바뀌더라도 서로한테 영향을 미치지 않는다.

느슨하게 결합하는 디자인을 사용하면 객체 사이의 상호의존성을 최소화 할 수 있기 때문에 변경 사항이 생겨도 무난히 처리할 수 있는 유연한 객체지향 시스템을 구축할 수 있다.

0.0.1_20210630_7_v33