카테고리 없음

5.9 - TIL (옵저버 패턴)

bugmin 2024. 5. 9. 23:52

옵저버 패턴 (PubSub 패턴)

 

이벤트에 함수를 등록(구독)을 해 사용하는 패턴이다.

특정 이벤트가 발생하면 등록해둔 함수를 수행하게 된다.

 

델리게이트를 생각하면 좋다. 대리자에게 함수를 등록해두고 이벤트 발생시 해당 함수들을 Invoke를 통해 수행하는 것이다.

 

이번 프로젝트에선 OnMoveEvent라는 Action 델리게이트가 그 역할을 수행한다

 

저번에 글에 적었듯이 Action 델리게이트는 반환값을 가지지 않고 매개변수만 가지는 델리게이트이다.

 

OnMoveEvent는 움직이 발생하는 이벤트이고

 

이 이벤트가 발생했을 때 어떠한 동작이 있었으면 좋을까 고심하고

 

필요한 동작을 함수로 만들어 이 델리게이트 함수에 함수들을 등록해주는 것이다.

 

그러면 만일 OnMoveEvent 이벤트가 발생하면 등록해둔 함수들을 Invoke 하게 되면서 수행을 하게 된다.

 

이전에는 약간 이 옵저버 패턴이 이해가 안됐는데

 

구독도 좋지만 등록한다라고 생각하니까 좀 더 이해가 잘 되는 느낌이다.

 

어떠한 이벤트가 존재하고 그 이벤트가 발생했을 때 수행하고 싶은 동작들을 여러 함수로 만들어 등록을 해둔다는 것이다.

 

이러헤하면 여러 클래스에서 해당 이벤트가 발생했을때 각자가 가지고 있는 메서드를 수행할 수가 있게 되는 것이다.