反射的概念:
指程序在运行时,访问、检测和修改它本身状态或行为的一种能力。
反射的作用
在计算机编程语言中,反射机制可以用来:
获取类型的信息,包括属性、方法
动态调用方法
动态构造对象
从程序集中获得类型
反射的缺点
性能:反射可以理解成是一种解释操作,这个过程总是要慢于直接调用的。当然,性能问题的程度是可以控制的,如果程序在很少涉及的地方使用,性能将不会是一个问题。
反射模糊了程序内部实际发生的事情,会比直接代码更加复杂。
缺点不能掩饰其优点,针对不同的场景使用合理的技术才是最高境界。
反射的使用场景
序列化(Serialization)和数据绑定(Data Binding)
远程方法调用(RMI)
对象/关系数据映射(O/R mapping)
转载:简单的C++反射机制实现:
https://blog.csdn.net/zhangyx_xyz/article/details/62238412
不过反射功能太简单,实际应用场景,还是没有使用公有方法简单,关键在于剥除了耦合性。
AGM::LibReflection: A reflection library for C++.
https://www.codeproject.com/Articles/8712/AGM-LibReflection-A-reflection-library-for-C
源码: