본문 바로가기

개인 공부 개발 일지/디자인 패턴

옵저버 패턴(Observer Pattern)

옵저버 패턴(Observer Pattern)

 - 옵저버 패턴은 JDK에서 가장 많이 쓰는 패턴 가운데 하나라고 한다......

 - 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체(연락받기를 희망하는)들한테 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다(ont-to-many)의존성을 정의한다. - 'Head First Design Patterns' 책 중에서...

 

위에 정의에서 "한 객체의 상태가 바뀌면"에서 한 객체는 어떤 객체를 말하는 걸까? 옵저버 패턴은 '신문 구독'을 생각하면 이해하기 쉽다. 어떤 사람이 특정 출판사의 신문을 구독하기를 원한다. 따라서 구독을 등록을 하게 되고 출판사는 구독을 희망하는 사람에게 매일 새로운 신문을 배달한다. 이 때 출판사가 '한 객체'가 되며 구독을 신청한 사람은 언제든지 구독을 취소하고 다시 등록을 할 수 있다. 

 

 일대 다 관계는 주제(출판사)와 옵저버(구독자)에 의해 정의 된다. 옵저버 패턴을 구현하는 방법에는 여러 가지가 있지만, 대부분 주제(Subject) 인터페이스와 옵저버(Observer) 인터페이스가 들어있는 클래스 디자인을 바탕으로 한다.

 

옵저버 패턴은 "서로 상호작용을 하는 객체 사이에서는 가능하면 느슨하게 결합하는 디자인을 사용해야 한다."는 디자인 원칙에 따라 느슨하게 결합되어 있는 객체 디자인을 제공한다.