WindowsをはじめとするGUIの普及によるものか、Observerパターンは数あるデザインパターンの中でも適用頻度の高いものの一つです。GUIアプリケーションではキー入力やボタンクリックといったイベントを受理したときの処理(イベントハンドラ)を定義し、イベントとイベントハンドラとの対応付けを行っておきます。そうすることでイベントに応じた処理、すなわち「イベントに反応する」ことができます。イベントとイベントハンドラとの対応付けに用いられているのがObserverパターンというわけ。 step-1: SubjectとObserver Observerパターンでは2つのクラス、SubjectとObserverが関与します。Subjectはイベントの発行元、Observerがイベントに反応するハンドラの基底クラスとなります。Observerにはあらかじめ、イベントに反応して呼び出されるメソッド
![shared_ptrによるObserverパターンの実装](https://cdn-ak-scissors.b.st-hatena.com/image/square/106c7e478be88bc515873fc79870c7b92dd94618/height=288;version=1;width=512/https%3A%2F%2Fcodezine.jp%2Fstatic%2Fcommon%2Fimages%2Fczlogo4fb_ogp.png)