Thanks Zak,
As per usual your explanations are concise and put it into terms that us mere mortals can understand.
Now I am going to take that and annoy the hell out you by putting it into a context that is relevant to me (after working in IT for 20 years).
So in effect, Interfaces are a One to Many relationship and Event Handlers are a Many to One relationship (if I was looking at it from a DB point of view). Yes I understand the actual comms is always one to one, but as an overall way of seeing it.
Feel free to chastise me if I got that wrong though as I know I am over simplifying it.
As you stated in your stream the third option to effect an amount of objects all at once is to just loop through an array of objects as well. Of course you are then doing actions on each object which may not need the action done on it. And you have to get that list in the first place as well, whereas Event Handlers and Interfaces allow you to put some logic behind if first, without having to create the list and then go through the list. The point being they are useful for when you want to effect objects but you don’t necessarily know which ones.
Thanks again, most insightful.