You either register delegates or you don’t. Nothing happens automatically.
Looping is not necessary. Consider the following:
• an actor receives an interface message and calls a dispatcher
• components reach out to the owning actor and register
This results in an actor relieving a message which is then broadcasted to the components. Only to the ones who bothered to register and are listening.
Doing this with a loop would be awkward, especially for components added dynamically at run-time.
You could probably automate this behaviour with inheritance and another interface in the component.
A component that automagically listens to the messages the owning actor receives?
Is this what you’re after?