Benefits:
• It abstracts the coupling between the subject and the observer.
• It provides support for broadcast type communication.
Applicable Scenarios:
• A change to an object requires changing other objects, and the number of objects that need to be changed is unknown.
• An object needs to notify other objects without making any assumptions about the identity of those objects.