감시자 패턴은 객체 사이에 일 대 다의 의존 관계를 정의해두어, 어떤 객체의 상태가 변할 때 그 객체에 의존성을 가진 다른 객체들이 그 변화를 통지 받고 자동으로 업데이트될 수 있게 만듭니다.

 

관찰차 패턴을 java에서는 java.util.Observer 라이브러리로 지원하고, C# 에서는 event 키워드로 지원한다.

4.1 업적 달성

업적의 종류가 보통 광범위하기 때문에 단순하게 생각한다면, 업적의 조건을 만족하게 되는 부분에 업적 달성 함수를 호출하게 된다면 코드가 지저분해질 것이다.

 

대상 객체는 자신을 관찰하는 모든 관찰자들 배열 (혹은 리스트)를 가지며, 특정 기준이나 사건 발생 시에 onNotify 함수를 호출시켜 알림을 모두에게 보낸다. 

순차적으로 onNotify 메서드를 호출하기 때문에 (동기적) 한 관찰자의 onNotify 반환이 늦으면 느려질 수 있다.

관찰자 포인터 배열을 사용하는 대신에 연결 리스트를 사용할 수도 있다.

+ Recent posts