Are there any guidelines on when you should use a delegate for indirect association, and an observer?
In C#, you get to use delegates for simple call-backs. I guess pointers to function and pointers to member functions can be considered as delegates too (am I right?).
I realize that do use an observer, you need to create an interface, and implement it, so it is more strongly-typed and the relationship is more formal. For a delegate, as long as the function signature and accessibility matches, you can "hook them up".
Does delegates make the observer pattern moot? How do you decide on a delegate vs. an observer pattern?