オブザーバ・パターンが好き

私はデザインパターンが嫌いだ。Javaなどの静的な(引数や戻り値の型が固定されている)プログラミング言語で柔軟なプログラムを作成するためのバッドノウハウがたくさん入っていると思うからだ。

そんなデザインパターンの中でひとつだけ重要なパターンを選ぶとしたら、私の場合は「オブザーバ・パターン」になる。変化を通知する仕組みは有用である。

オブザーバ・パターンの考え方は昔から活用されていたが、それには正式な名前が付いていなかった。PCのプリンタポートの制御にポーリングと割り込みがあるが、割り込みは一種のオブザーバ・パターンと見なすことができる。様々なプログラミングで使われるイベントもオブザーバ・パターンである。オブザーバ・パターンは開発言語を問わず使える有用な概念であり、バッドノウハウではない。デザインパターンは嫌いだが、特定のパターンにみんなが参照できる名前を付けたことは素晴らしいと思う。

イベントや割り込みを使うと「必要なときだけ動作する」プログラムを作りやすい。あなたのiPhoneAndroid端末の消費電力が少ないとしたら、陰でオブザーバ・パターンが貢献しているかも知れない。