Observer Pattern
“The observer pattern is a software design pattern in which an
object, called the subject maintains a list of its dependents, called
observers, and notifies automatically of any state changes, usually
by calling one of their methods.”
-Wikipedia