`
yangbinfc
  • 浏览: 46142 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

内省和自省 反射

 
阅读更多

自省就是内省,内省在反射包里,是利用反射实现的,内省可以算是对反射的扩充,二者不是一个概念。

内省主要说的,一个类该做哪些事情由这个类本身就决定了,而非外部调用者。

比如一个类只有get和set方法,那么明显这个类的主要任务就是封装数据,则把这个类传入对应内省构造器中,无须你在挨个set。

或者一个负责计算某些值,那你可以要求这个类所有计算方法必须以“compute”开头,则将这个类自动运行而无需关心该计算哪些。

====================================================

反射 与 自省 都是用来判断一个语言是否是动态语言 的标准

下面是 它们的定义(计算机编程中

反射(reflection)

可以在运行时获得对象的类型信息。比如对于一个JAVA对象,它的类型信息包括

1,这个对象的所属的类(class)

2,这个类 的 构造器(constructor)

2,这个类 中 声明的方法(method)

3,这个类中 声明的属性(field)

4,这个类 中 声明的注解(annotation)

5,这个类 的 父类(superclass)

6,这个类 实现的 接口(interface)

自省( introspection

默认构造(如通过默认的构造函数可以给一个po中的多个属性赋值)

检查某些事物以确定它是什么、它知道什么以及它能做什么。

对象 的类型信息 就是描述 这个对象 是什么,知道什么,以及能做什么。

我感觉反射 与 自省 其实是一回事, 只是在JAVA中把自省说成反射,在PYTHON中把反射说成自省。

不知道为什么一种事物会有两种说法。。。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics