反射

来源:互联网 发布:华为p7手机壳淘宝 编辑:程序博客网 时间:2024/06/09 13:46


   问题


      先不说反射是什么,先问自己一个问题,反射可以给我们带来什么?

 

      在做一个程序的时候,别人开发的插件,只要继承某个已知的接口,就可以利用反射动态加载进来,然后实例化接口调用。如此一来,就可以载入别人的插件了~~

 

      运用反射有时候可以省掉很多低能的代码~~

 

      这已经让人很想知道这是什么了。。。

 

   引入

      

      我们平时是如何与人交流的呢?坐下来谈谈是个好办法。两个人就某个话题来表达观点,在这个过程中,我们会进入对方的内心,分析思考对方的想法,然后与自己的固有想法形成对比,发现自己的不足,最后我们两个人在观点上都有了或多或少的改变。这,就是反射。

 

   正文

 

      对于程序来讲,反射就是指程序可以访问、检测和修改它本身状态或行为的一部分。很特别的是,它可以在运行状态下进行这些。

 

      所以反射的用途是:

      1.允许在运行时查看属性信息。

      2.允许审查集合中的各种类型,以及实例化这些类型。

      3.允许延迟绑定方法和属性。

      4.允许在运行时创建新类型,然后使用这些类型执行一些任务。

                                                   ……

 

     在这里,程序集包含模块,模块包含类型,类型包含成员。反射提供了封装程序集、模块和类型的对象。

 

     当然当然,运用反射也是有缺点的,比如:

     1、性能问题:使用反射基本上是一种解释操作,用于字段和方法接入时要远慢于直接代码。因此反射机制主要应用在对灵活性和拓展性要求很高的系统框架上,普通程序不建议使用。

    2、使用反射会模糊程序内部逻辑;程序员希望在源代码中看到程序的逻辑,反射却绕过了源代码的技术,因而会带来维护的问题,反射代码比相应的直接代码更复杂。

 

 

   总结

      我写的很皮毛,大家可以继续看看另一篇写的很深奥的博客:http://blog.csdn.net/educast/article/details/2894892

 

 

1 0
原创粉丝点击