<< 2007/03/ 1 2 1. リアルタイム性と記録性、閲覧性、検索性の間
3 4 5 1. 近江町市場を壊し始めたらしい
2. 思い立って simple delegator もどきを書き始める
6 7 8 9 1. JavaScript で Safari 1.3 除け
10 11 12 13 1. 独自実装の部分は断って書いてくれないと勘違いしかねないよ
2. News って内向けに使えるかも
14 1. 立ち上げたタイミングによって速度が変わるとか
15 16 17 18 1. Markdown と Textile になんとなく感じたこと
19 20 1. エンコーディングが混ざっていても化けない diff
21 1. バッカスというと Bacchus を思い出しちゃう人間ですが
22 23 1. Yahoo! Widgets 4
24 25 26 27 1. Web API にのっかってほしいもの
28 1. screen + Emacs 環境でたまに起きること
29 1. 全角半角チェックの問題
30 1. NeoOffice 2.1 が出た!
31 1. W3拡張ログファイルフォーマットの応用を夢想
>>
トップ «前の日記(2007-03-02) 最新 次の日記(2007-03-09)» 編集

2007-03-05 [長年日記]

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

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

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

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

Tags: 日々

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

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

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

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

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

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

Tags: PHP

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

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

本日のツッコミ(全1件) [ツッコミを入れる]
_ showchan (2007-03-06 22:19)

うっそんー。
つうかビルって。あれビルに入ったらなんかこう...
においとかこもってすごくいやーんな感じになりそうな気がしてなりません。