When it comes to the Observer pattern, there are a number of related, overlapping terms used by different codebases. Off the top of my head:
- Observer/Observable/Subject
- Listener/Listenable
- Event/Event source/Event sink/Event handler
- Hook/Callback
- Subscriber/Subscribable
- "Firing" vs. "Triggering" vs "Notifying" vs "Executing"
Which of these do consider to be synonymous?
Of terms that are synonymous, which do you prefer to use in your programs?
Of terms that are not synonymous, what semantic differences do the different terms imply to you?
I think hooks and callbacks are different because you're observing individual messages (using a Proc), whereas observers / subscribers seem to mean an object that understands a richer protocol.