Mirror (programming) explained

In computer programming, a mirror is a reflection mechanism that is completely decoupled from the object whose structure is being introspected. This is as opposed to traditional reflection, for example in Java, where one introspects an object using methods from the object itself (e.g. getClass).

Mirrors adhere to the qualities of encapsulation, stratification and ontological correspondence.[1]

Benefits

Decoupling the reflection mechanism from the objects themselves allows for a few benefits:

Languages that use mirrors

Notes and References

  1. Gilad Bracha and David Ungar, "Meta-level Facilities of Object-Oriented Programming languages"
  2. Web site: Frequently Asked Questions.
  3. Web site: Rubinius/Mirror.rb at master ยท rubinius/Rubinius.
  4. Web site: Environment, Universes, and Mirrors.