質問: Observerパターンについて少し勉強しました。一つ疑問に思ったのが、Observerは訳すと観察者とのことですが、Subjectを継承したクラスが、Observerを継承したクラスに通知するって、通知が来るの待ってるだけで観察してないと思ったのでややしっくりこないのですが、実際のところこのネーミングは正しいのでしょうか。
回答: Subjectが自分の変化をObserverへ「通知する」のは計算機で効率よく機能を実現するための単なる実装です。Observerがなぜ「監視者」と呼ばれるかと言えばこれが実現する機能を表現していると捉えればよいと思います。 Subjectから届くであろう通知に「聞き耳を立てている」という意味で「リスナー」と表現することもできるでしょうからその方が実際の動作に即したネーミングと感じることもあるでしょう。 しかしプログラマーにとって興味があるのは「聞き耳を立てる」という実装方式ではなく、「Subjectの変化に対して自動的に何か役に立つことをしてくれる」=「Subjectを監視してくれている」という機能の方だと捉えればObserverというネーミングは不自然ではないと思います。