再长的路,一步步也能走完,再短的路,不迈开双脚也无法到达
就算在我面前的是一堆灰烬,我也要用希望把它点燃:)想我吗?

开饭罗

到时候了,该吃饭了!

博客园 首页 新随笔 联系 订阅 管理

    对于打算编写一个动态构造类型(晚绑定)的应用程序,通常都可以用发射来实现,但是,反射的性能是在令人担忧,特别是在多并发的系统中。
    现在,我们可以采取以下的几种方式进行代替,实现反射一样的功能,但是,性能大大提升:   
 1. 通过类的继承关系。让该类型从一个编译时可知的基础类型派生出来,
在运行时生成该类 型的一个实例,将对其的引用放到其基础类型的一个变量中,
然后调用该基础类型的虚方法。
  
 2. 通过接口实现。在运行时,构建该类型的一个实例,
将对其的引用放到其接口类型的一个变量中,然后调用该接口定义的虚方法。
  
 3.通过委托实现。让该类型实现一个方法,其名称和原型都与一个在编译时就已知的委托相符。
在运行时先构造该类型的实例,然后在用该方法的对象及名称构造出该委托的实例,
接着通过委托调用你想要的方法。这个方法相对与前面两个方法所作的工作要多一些,效率更低一些


在Data Access Application Block v3版本中,就是用了第一种方法来实现abstract factory的。

posted on 2005-03-11 21:23  生米煮成稀饭  阅读(407)  评论(0编辑  收藏  举报