反射的概念:

指程序在运行时,访问、检测和修改它本身状态或行为的一种能力。

反射的作用

在计算机编程语言中,反射机制可以用来:

获取类型的信息,包括属性、方法
动态调用方法
动态构造对象
从程序集中获得类型

反射的缺点

性能:反射可以理解成是一种解释操作,这个过程总是要慢于直接调用的。当然,性能问题的程度是可以控制的,如果程序在很少涉及的地方使用,性能将不会是一个问题。
反射模糊了程序内部实际发生的事情,会比直接代码更加复杂。
缺点不能掩饰其优点,针对不同的场景使用合理的技术才是最高境界。

反射的使用场景

序列化(Serialization)和数据绑定(Data Binding)
远程方法调用(RMI)
对象/关系数据映射(O/R mapping)

 

 

不过反射功能太简单,实际应用场景,还是没有使用公有方法简单,关键在于剥除了耦合性。

 

AGM::LibReflection: A reflection library for C++.

​https://www.codeproject.com/Articles/8712/AGM-LibReflection-A-reflection-library-for-C​

 

源码:

​https://github.com/xingyuan1hao/Cplusplus_reflection​