Паттерн Observer.

Когда применяется и в чём суть?

Паттерн использует отношение “один ко многим”. В отношении присутствует один “обект” и множество “наблюдателей”. При изменении объекта происходит оповещение всех наблюдателей. Используется это когда система состоит из множества классов, объекты которых должны находиться в согласованных состояниях.