oop - 猴子修补/类重新开放真的是反射的例子吗?

标签 oop reflection terminology monkeypatching late-binding

很抱歉这个问题的递归性质,但是 chosen answer关于 SO 的问题让我质疑我对反射的理解。

我认为反射主要是查询程序运行时的内部情况。此响应中给出的示例修补了 Ruby 的内置 Integer 类。

  • 这不是更像是函数重载/继承而不是运行时修改吗?
  • 重新开课真的是反射(reflection)的一个例子吗?

最佳答案

反射可以用来实现后期绑定(bind)。

后期绑定(bind)可用于实现猴子修补。

猴子补丁可用于实现该答案中显示的那种编码风格。

但是还有其他方法可以实现不需要猴子修补或反射的此类功能。哎呀,一个好的宏预编译器可以让你接近。

所以,技术上是正确的,但不是(恕我直言)最好的例子。

关于oop - 猴子修补/类重新开放真的是反射的例子吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/547464/

相关文章:

c++ - OOP - 它是覆盖类成员变量类型的好方法吗

java - 检查@XmlElement是否有name属性

computer-science - 术语 'locally' 在软件中的确切含义是什么?

java - ToStringBuilder.reflectionToString(Object) 以什么格式显示日期?

java - 为什么在使用 Class.forName(...) 时会出现 ClassNotFoundException?

postman - Postman 中的 {{$guid}} 有何用途?

Java - 类型删除和类型推断有什么区别?

c++ - Main 函数与状态之间的通信

javascript - javascript 原型(prototype)继承如何用于数组、函数

python - 为什么使用 staticmethod 而不是根本不使用装饰器