Why use an event dispatcher over calling a function?

but source does not need to know all targets, only targets need to know, which means you can dynamically spawn and destroy targets and retain control over them.