Observer Pattern nasıl çalışmaktadır? örnek verebilir misiniz?

Ne zaman bu pattern tercih edersiniz.