[내일배움 캠프 3주차] Event Bus Pattern

하얀요니콘·2025년 7월 16일
0

어제 언급한 event bus Pattern에 대하여 설명한다.

Event Bus Pattern

이론은 간단하다, 보통 이벤트가 발생 시 델리게이트를 이용하여 여러 메소드를 호출 시켜줄 수 있다. 다만 이 경우, 델리게이트에 모든 메서드를 넣어주는 과정이 필요한것이다. 이를 정리하기 위해 Event Bus라는 것을 이벤트를 전달해주는 인자와 이벤트를 받는 인자 사이에 두어, 관리를 해 주는것이라고 보면된다.

이때 이벤트를 주는 존재는 Publisher이라고 한다.
이벤트 메서드를 받는 존재는 Subscriber이라고 한다.

EventBus내부에 변수를 받는 키와 delegate(Action)의 List가 있는 Dictionary를 이용하여 관리를 해 준다.

Subscribe메소드와 UnSubscribe메소드는 우선 특정 인자를 받는 메소드를들을 Dictionary에 넣어주는 작업을 한다. Subscribe를 불러, 해당 action의 델리게이트가 이벤트가 생겼을 시 받는다는 정보를 Dictionary에 넣어주고, 반대로 UnSubscribe는 더이상 이벤트를 받을 필요가 없어졌을 시, Dictionary에서 빼주는 역활을 한다.

반면 Publisher의 경우 이벤트를 호출 할 시점에 Publish를 해주면 된다. Publish를 EventBus에 호출시키면, 이제 Dictionary에서 호출시키고 싶은 델리게이트를 찾고, 이제 호출시킬 델리게이트가 있다면 하나씩 순회하면서 호출해 준다.

설명으로는 간단하지만 코드구현으로는 생각보다 오랜 시간이 걸렸다. 결국 요약하자면 이벤트가 호출되고자 하는 Deligate와 이벤트를 부를 Publisher 사이에 위치하여 이를 간결하게 정리 해 주는 역활을 한다고 보면 된다.

profile
코딩공부용

0개의 댓글