In software design and engineering, the observer pattern is a software design pattern in which an object, named the subject, maintains a list of its dependents, called observers, and notifies them automatically of any state changes, usually by calling one of their methods. It is often used for implementing distributed event-handling systems in event-driven software. In such systems, the subject is
![Observer pattern - Wikipedia](https://cdn-ak-scissors.b.st-hatena.com/image/square/4627f5088b3f4f0b51f2f457c3047a53d2ca0f21/height=288;version=1;width=512/https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fthumb%2F8%2F8d%2FObserver.svg%2F500px-Observer.svg.png)