kanizaのブログ

コンピュータ、ソフトウェア、映画、音楽関連や家族のことなど、思いついたことを書きます。

Observerパターン

オブジェクト指向における再利用のためのデザインパターン」を読んでいたら、SmalltalkにはObserverパターンの機能がObjectクラスレベルで組み込まれているという記述を見つけた。どういう具合になっているのかなぁと思ってちょっと探してみたら次のページを見つけた。

http://www.ogis-ri.co.jp/otc/hiroba/technical/Squeak5/S5-7-1.html

SmalltalkではDependencyカニズムと呼ぶようだ。

SqueakのブラウザでObjectクラスをみると、かなりの数のメソッドがある。JavaObjectクラスと比べるとかなり多い。SmalltalkでもJavaでも、Objectクラスはすべてのクラスの基底になっているから、そこにどのような機能があるかは重要。

Cocoa Objective-CではNSKeyValueObservingプロトコルにObserverパターンの機能が組み込まれているのですな。

Observerパターンはクラス間の相互依存性を解消するのによく使うから、楽にコーディングできるようになっているとうれしい。Javaだとけっこういろいろ書かないといけないんだよな。