コンピュータプログラミングにおいて、ミラーとは、構造を内省するオブジェクトから完全に切り離された反射メカニズムです。これは、例えばJavaにおける従来の反射とは対照的です。Javaでは、オブジェクト自体のメソッドを使用してオブジェクトを内省します(例えば、を取得するため)。java.lang.Object::getClass()java.lang.Class<?>
鏡はカプセル化、階層化、存在論的対応という性質に合致する。[ 1 ]
利点
反射機構を物体自体から切り離すことで、いくつかの利点が得られます。
- オブジェクトのインターフェースは汚染されていないため、リフレクションメソッドをオーバーライドしてもリフレクションが壊れる危険性はありません。
- ミラーシステムには様々な種類がある。
- ミラーシステムは完全に撤去可能であり(これにより最適化が可能になる可能性がある)。
- ミラーシステムは特定のコンピュータに依存していないため、リモートコード上で動作することができる。
参考文献
- ↑ギラッド・ブラチャ、デビッド・ウンガー、「オブジェクト指向プログラミング言語のメタレベル機能」
- ↑ cppreference.com. "std::meta::info" . cppreference.com . 2026年5月19日取得.
- ↑ 「よくある質問」
- ↑ "Rubinius/Mirror.rb アット マスター · ルビニウス/ルビニウス"。
- ↑ 「環境、宇宙、そして鏡」。