反射的应用场景分析?

    .Net FrameWork中反射一个很强大的功能。他给开发人员带了很多的灵活性。但是反射调用或者反射创建比起直接创建或者直接调用来说,性能都会差比较多。(看博客,发现老赵提供了fastReflect,据说是用Emit的技术,使反射调用的性能和直接调用的性能相差无几)但是反射调用可以实现两点:

    1.是较好的扩展性,特别是针对于开发接口进行二次扩展实现的设计,反射是我想到的唯一的实现方案。如:插件框架设计(不过现在MEF框架也实现了这个功能,虽然还没有研究,但感觉也应该使用反射的机制来实现的。),我可以定制一个标准的接口,然后我们可以通过实现该接口来扩展自己的业务逻辑,同时通过配置文件或者数据库注册上该业务插件,然后在运行时通过注册的信息,反射创建该接口的实现。

    2. 可以消除项目之间的依赖关系。编程的过程中我们都会依赖于接口进行编程,通过反射来创建具体类的实例的话,这样可以解除与具体实现类之间的耦合关系。

      不过个人觉得反射是一个不错的东西。但是是用的时候一定要权衡他的必要性。反射个人感觉是用一定性能换取一定的灵活性。这个时候个人觉得应该权衡两者之间的权重,然后再来决定是否是用反射技术。以上纯粹自己的小小总结,望大家指教,补充!

 

posted @ 2012-02-27 22:23  KevinXiao  阅读(348)  评论(0)    收藏  举报