방프리

23.07.25 Chapter2. API 설계 (Item 20) 본문

C#/More Effective C#

23.07.25 Chapter2. API 설계 (Item 20)

방프리 2023. 7. 25. 00:21

Item 20 : 이벤트가 런타임 시 객체 간의 결합도를 증가시킨다는 것을 이해하라

 

이벤트는 구독자를 통해서 한 번에 여러 동작을 동시에 할 수 있다는 점에서 굉장히 유용하다

하지만 이는 자칫 잘 못 사용하면 하나의 이벤트에 여러 구독자가 뒤섞이면서 관리 차원에서

문제가 발생할 수도 있다는 뜻이다.

특히 런타임 때 이벤트 구독이 엮인다면?  Dispose될 때 처리까지 완벽하게 이루어져야 한다.

개발자가 어느 이벤트를 구독시킬건지만 명확하게 한다면?, 또는 하나의 이벤트에 하나의 구독자만

구독하게 규칙을 정한다면 굉장히 유용할 것 같다.

다만... 런타임 때 이벤트 구독을 시키는 것은 Dispose처리를 명확하게 할 수 있거나

그 시점을 명확하게 조절할 수 있다면 사용해도 무방할 것 같다.

(ex. 싱글톤 인스턴스에서 이벤트를 명시 후 한 번 등록한 구독자를 프로그램이 종료될 때까지 해지하지 않을 때)

Comments