This document discusses the observer pattern. It begins with an example problem of wanting to change enemy speed and gem color when the player collects a gem. The first implementation had code smells. The document then introduces the observer pattern as a solution. It shows the class diagram and discusses implementing the pattern in C#. Common uses of the pattern are presented. Finally, it recommends further reading about design patterns in specific books.