2007-03-05

近江町市場を壊し始めたらしい

話には聞いていたけども武蔵の再開発で近江町市場を壊し始めたらしい。すでに仮店舗での営業をしている店が結構出てたけど、いよいよかと。

近江町市場は将来的には地上5階、地下1階のビルに収まっちゃうそうな。なんだか風情がないねぇ。

ということはあれか、今年の夏があの氷の見納めか。撮っておいた方がいいかな?

思い立って simple delegator もどきを書き始める

PHP で、なんつーか、filter 構造のオブジェクトが欲しくなり、自分の持っていないメソッドがあったら委譲先に丸投げする1という潔いクラスを作って、Ruby のマニュアルで見かけたことのある simple delegator という名前をそのまま拝借して付けてみた。

その後、実際にメソッドが定義されているオブジェクトのリファレンスを返すメソッドと、定義されているメソッドを移譲先のオブジェクトごとに一覧してくれるメソッドを追加しておしまい。2

たったこれだけなんだけど自分が思っていた以上に便利だ。

こいつをさらに wrap して今度は手で通常の委譲をしてやると、中ではどこで定義されているかによらずにメソッドを自由に呼べて、外からは限られたメソッドしか呼べないというオブジェクトができあがる。

もしかして PHP 5 ではこんなの普通ですか? まぁいいや。

  1. PHP には method_missing なんて便利なものはないので、移譲先を含めてどうにかメソッドを呼び出してくれというメソッドを定義しないといけない。今回はこれを _call() と名付けた。なにかとかぶっていそうだけどとりあえず無視。 

  2. 実際には自作のベースオブジェクトの機能を使って呼び出しに失敗した際のエラーを格納するとか、そういう機能もついてるけど。 

About

例によって個人のなんちゃらです