ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Design Pattern] Observer Pattern/옵저버 패턴
    Book/헤드퍼스트 디자인패턴 2023. 3. 20. 16:56
    반응형
    [헤드퍼스트 디자인 패턴] 책을 읽으며 정리한 글입니다

     

    옵저버 패턴 ( Observer Pattern )

    한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체에게 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다(one-to-many) 의존성을 정의한다.

     

    신문사 + 구독자 = 옵저버 패턴! 

    옵저버 패턴은 신문사와 구독자로 이루어지는 신문 구독 서비스와 비슷하다.

    신문사를 주제(subject), 구독자를 옵저버(observer)라고 부른다.

     

    옵저버 패턴은 여러가지 방법으로 구현할 수 있지만, 보통 주제 인터페이스와 옵저버 인터페이스가 들어있는 클래스 디자인으로 구현한다.

     

     

     

     

    ConcreteSubject

    : Subject Interface 를 구현해야한다. 주제 클래스에는 등록하는 registerObserver() 및 해지하는 removeObserver() 메소드와 상태가 바뀔 때 마다 모든 옵저버에게 연락하는 notifyObservers() 메소드를 구현해야한다.

    ConcreteObject

    : ObserverInterface만 구현한다면 무엇이든 옵저버 클래스가 될 수 있다. 각 옵저버는 특정 주제에 등록해서 연락을 받는다.

     

    디자인 원칙 정리

    디자인 원칙 | 상호작용하는 객체 사이에 가능하면 느슨한 결합을 사용해야한다.

    느슨하게 결합하는 디자인을 사용하면 변경 사항이 생겨도 무난히 처리할 수 있는 유연한 객체지향 시스템을 구축할 수 있다.

    객체 사이의 상호의존성을 최소화할 수 있기 때문.

    반응형
Designed by Tistory.