Knowledge

Mirror (programming)

Source 📝

199: 88: 28:
mechanism that is completely decoupled from the object whose structure is being introspected. This is as opposed to traditional reflection, for example in
240: 40: 182: 25: 264: 259: 117: 112: 233: 102: 78: 29: 168: 154: 226: 214: 68:
A mirror system can operate on remote code, since it is not coupled with a particular machine.
51:
Decoupling the reflection mechanism from the objects themselves allows for a few benefits:
17: 8: 55:
The object's interface is not polluted, so there is no danger of breaking reflection by
56: 206: 65:
The mirror system can be removed entirely (potentially allowing for optimizations).
210: 253: 32:, where one introspects an object using methods from the object itself (e.g. 98: 198: 143:"Meta-level Facilities of Object-Oriented Programming languages" 142: 169:"Rubinius/Mirror.rb at master · rubinius/Rubinius" 43:, stratification and ontological correspondence. 251: 234: 72: 241: 227: 252: 62:There can be different mirror systems. 183:"Environment, Universes, and Mirrors" 193: 39:Mirrors adhere to the qualities of 13: 14: 276: 197: 175: 161: 147: 141:Gilad Bracha and David Ungar, 135: 1: 128: 213:. You can help Knowledge by 155:"Frequently Asked Questions" 7: 46: 10: 281: 192: 73:Languages that use mirrors 105:implementation), via its 107:Rubinius::Mirror.reflect 265:Computer science stubs 260:Programming paradigms 59:a reflective method. 18:computer programming 222: 221: 272: 243: 236: 229: 207:computer science 201: 194: 187: 186: 179: 173: 172: 165: 159: 158: 151: 145: 139: 35: 280: 279: 275: 274: 273: 271: 270: 269: 250: 249: 248: 247: 191: 190: 181: 180: 176: 167: 166: 162: 153: 152: 148: 140: 136: 131: 75: 49: 33: 12: 11: 5: 278: 268: 267: 262: 246: 245: 238: 231: 223: 220: 219: 202: 189: 188: 174: 160: 146: 133: 132: 130: 127: 126: 125: 115: 110: 96: 86: 74: 71: 70: 69: 66: 63: 60: 48: 45: 9: 6: 4: 3: 2: 277: 266: 263: 261: 258: 257: 255: 244: 239: 237: 232: 230: 225: 224: 218: 216: 212: 209:article is a 208: 203: 200: 196: 195: 184: 178: 170: 164: 156: 150: 144: 138: 134: 123: 119: 116: 114: 111: 108: 104: 100: 97: 94: 90: 87: 84: 80: 77: 76: 67: 64: 61: 58: 54: 53: 52: 44: 42: 41:encapsulation 37: 31: 27: 23: 19: 215:expanding it 204: 177: 163: 149: 137: 121: 106: 92: 82: 50: 38: 21: 15: 93:std::mirror 254:Categories 129:References 120:, via its 91:, via its 81:, via its 57:overriding 34:getClass() 26:reflection 124:function. 85:function. 99:Rubinius 47:Benefits 122:reflect 109:method. 95:module. 83:reflect 22:mirror 205:This 118:Swift 113:Scala 24:is a 211:stub 103:Ruby 89:Inko 79:Dart 30:Java 20:, a 36:). 16:In 256:: 242:e 235:t 228:v 217:. 185:. 171:. 157:. 101:(

Index

computer programming
reflection
Java
encapsulation
overriding
Dart
Inko
Rubinius
Ruby
Scala
Swift
"Meta-level Facilities of Object-Oriented Programming languages"
"Frequently Asked Questions"
"Rubinius/Mirror.rb at master · rubinius/Rubinius"
"Environment, Universes, and Mirrors"
Stub icon
computer science
stub
expanding it
v
t
e
Categories
Programming paradigms
Computer science stubs

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.