Breaking down the Observer pattern
As part of the behavioral family of design patterns, the Observer pattern is all about communication between objects while keeping the objects sending information decoupled from the receiving objects. The Observer pattern lets you notify any listeners of specific state changes (changing values) or events (the player enters a battle) without tightly coupled references between those objects. I’m sure you can think of at least five situations where this would be an awesome boost to your code, but the Observer pattern is most useful when:
- You have an object that needs to broadcast information or changes to a variety of other objects.
- You have an object with a changing state and don’t know how many other objects need to stay up to date.
- You want to avoid tight coupling between objects that share a dependency.
I like to think of this as a downstream operation, with the start of a river branching off into multiple...