Best practice for managing delegates

Hi everyone,
I’m fairly new to C++, coming from a Unity/C# background and I’m wondering what the best practice is for managing delegates/custom events in UE4. In Unity I’d generally create a separate class to manage all event delegates. For example, I would have three classes: a listener, a broadcaster, and the EventManager class. The EventManager class would host all the delegates in the entire game and register subscriptions from other classes. Is it recommended in UE 4 to follow the same structure? For example: a simple game contains five classes; a player controller class, a camera controller class, a base Pickup class, a ‘Type A pickup’ class that extends the base Pickup class, and a ‘Type B pickup’ class that extends the base Pickup class. Pickup A will affect the camera, and Pickup B will affect the player. Would each Pickup class host its own delegate and broadcast the event on pick up? Or would one write a separate class to host the delegates and have the Pickups broadcast to that class and the player and camera controller subscribe to them? Apologies if this is confusing (I think I’ve even confused myself), but I hope someone with a little more experience than me can shed some light.

Thanks in advance!