Observer design pattern is useful when you are interested in the state of an object and want to get notified whenever there is any change.
In observer pattern, the object that watch on the state of another object are called Observer and the object that is being watched is called Subject.
https://www.digitalocean.com/community/tutorials/observer-design-pattern-in-java