디자인 패턴 정리 (GOF - Observer Pattern)

Youngmin Choi·2021년 12월 8일
0

Design-Pattern

목록 보기
7/9

6. Observer Pattern (옵저버 패턴)

  • 용도 :
    관찰 대상의 상태가 변화했을 때 관찰자에게 통지하는 패턴이다.
    상태 변화에 따른 처리를 기술할 때 효과적으로 활용


    요약 :
    한 객체(A)의 상태가 바뀌면
    그 객체(A)에 의존하는 다른 객체들(B, C, D ...)한테
    자동으로 내용이 갱신되는 방식. 즉, 1:N 의존성을 정의한다!

  • 사용방법 :
    Observer 클래스에 상태 변화를 알려주고,
    Observer는 다시 그 변화에 맞는 결과를 나타낸다.
    C#에서는 Delegate와 같다! Delegate가 곧 이 옵저버 패턴!
    Delegate를 사용하면 옵저버 객체들을 리스트로 관리할 필요가 없다!

    ex1)
    구조 :
  1. Observer abstract 클래스
  2. ConcreteObserver1 클래스 : Observer
  3. ConcreteObserver2 클래스 : Observer
  4. ISubject 인터페이스
  5. ConcreteSubject 클래스 : ISubject




    ex2)
    구조 :

    1.ConcreteSubject 클래스
    나머지는 예제1) 과 동일


    위 사진과 같이 델리게이트에 그저 옵저버의 OnNotify 함수를 등록시킬 뿐이다!


    장점 :
    ex1)에서 처럼 개별적으로 리스트에 옵저버 객체들을 저장해두고 for문 돌려 일일이 옵저버들의 OnNotify를 실행시켰던 것과 달리 간단하다!
profile
Always, Continually, In all circumstance

0개의 댓글