Articulo de referencia

Espejo (programación)

En programación informática , un espejo es un mecanismo de reflexión que está completamente desacoplado del objeto cuya estructura se está inspeccionando. Esto contrasta con la ...

En programación informática , un espejo es un mecanismo de reflexión que está completamente desacoplado del objeto cuya estructura se está inspeccionando. Esto contrasta con la reflexión tradicional, por ejemplo en Java , donde se inspecciona un objeto utilizando métodos del propio objeto (por ejemplo, para obtener un ).java.lang.Object::getClass()java.lang.Class<?>

Los espejos se adhieren a las cualidades de encapsulación , estratificación y correspondencia ontológica. [ 1 ]

Beneficios

Desacoplar el mecanismo de reflexión de los propios objetos permite obtener varias ventajas:

  • La interfaz del objeto no está contaminada, por lo que no hay peligro de romper la reflexión al sobrescribir un método reflectivo.
  • Puede haber diferentes sistemas de espejos.
  • El sistema de espejos se puede eliminar por completo (lo que potencialmente permite realizar optimizaciones).
  • Un sistema espejo puede funcionar con código remoto, ya que no está acoplado a una máquina en particular.

Lenguajes que utilizan espejos

  • C++ , a través del ^^operador y el tipo devuelto std::meta::info. [ 2 ]
  • Dardo , por su reflect()función.
  • Inko , [ 3 ] a través de su std::mirrormódulo.
  • Rubinius ( implementación de Ruby ), a través de su Rubinius::Mirror.reflect()método. [ 4 ]
  • Scala [ 5 ]
  • Swift , a través de su Swift.Mirrorclase y la reflect()función.

Véase también

Referencias

  1. Gilad Bracha y David Ungar, "Funcionalidades de metanivel de los lenguajes de programación orientados a objetos"
  2. cppreference.com. "std::meta::info" . cppreference.com . Consultado el 19 de mayo de 2026 .
  3. "Preguntas frecuentes" .
  4. "Rubinius/Mirror.rb en master · rubinius/Rubinius" .
  5. "Entorno, Universos y Espejos" .