思い立って simple delegator もどきを書き始める
PHP で、なんつーか、filter 構造のオブジェクトが欲しくなり、自分の持っていないメソッドがあったら委譲先に丸投げする1という潔いクラスを作って、Ruby のマニュアルで見かけたことのある simple delegator という名前をそのまま拝借して付けてみた。
その後、実際にメソッドが定義されているオブジェクトのリファレンスを返すメソッドと、定義されているメソッドを移譲先のオブジェクトごとに一覧してくれるメソッドを追加しておしまい。2
たったこれだけなんだけど自分が思っていた以上に便利だ。
こいつをさらに wrap して今度は手で通常の委譲をしてやると、中ではどこで定義されているかによらずにメソッドを自由に呼べて、外からは限られたメソッドしか呼べないというオブジェクトができあがる。
もしかして PHP 5 ではこんなの普通ですか? まぁいいや。
More
Recent Posts
- » ものぐささんのためのTypeScriptを使いつつGASでも使えるライブラリ開発環境
- » quickjs.rbでRubyの環境からJavaScriptのロジック(I/Oのないコード)の動作結果を得る
- » kintoneからエクスポートしたCSVデータの変換ライブラリを作ってみた
- » MCPメモ
- » Mermaidの大きすぎる余白を調整する方法の一例
- » LLMアプリをLLMを使いながら作ってみた
- » Gemini Advancedでもうゲームが変わっていた
- » 今さらLLMのモデルの違いとプロンプトエンジニアリングについて
- » Bundler環境でIRBでもLSPでもドキュメントを利用する方法
- » Ruby 3.2と3.3のirb historyの扱いの違いと対処方法