对反射的认识

反射的概念是由 Smith 在 1982 年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。

通俗来讲,反射就是“回看自身” ,就是“照镜子”。可以看成是一种自我反省的能力,像照镜子,通过反射看清自己的本来状态。

这一概念的提出很快引发了计算机科学领域关于应用反射性的研究。它首先被程序语言的设计领域所采用,并在 Lisp 和面向对象方面取得了成绩。

反射实例 — Java中的反射

Java 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为 Java 语言的反射机制。

Java反射机制主要提供下面几种用途:

  1. 在运行时判断任意一个对象所属的类
    ( IsKindsOf / IsInstance 的能力!MFC 中提及的 RTTI 的能力!)
  2. 在运行时构造任意一个类的对象,换句话说,反射为面向对象的程序提供了“动态创建”的能力。
    ( MFC 中提及的 动态创建能力 dynamic create !)
  3. 在运行时判断任意一个类所具有的成员变量和方法
  4. 在运行时调用任意一个对象的方法

反射实例 — Python中的反射

  1. 在运行时判断任意一个对象所属的类
    > Python内置函数:type(),isinstance()
  2. 在运行时找到一个对象所有属性和方法
    > Python内置函数:dir()

发表评论

电子邮件地址不会被公开。 必填项已用*标注