日期:2011-03-22 16:17:00 来源:本站整理
<b>java rtti学习总结</b>[Java编程]
本文“<b>java rtti学习总结</b>[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
操纵RTTI可按照一个匿名的底子类句柄调查出范例信息.但恰是由于这个缘由,新手们极易误用它,因为有些时刻多形性办法便充足了.对那些从前习惯程序化编程的人来说,极易将他们的程序组织成一系列switch语句.他们大概用RTTI做到这一点,从而在代码开辟和保护中丧失多形性技术的重要代价.Java的要求是让我们尽大概地采取多形性,只有在极分外的情形下才利用RTTI.
但为了操纵多形性,要求我们拥有对底子类定义的掌握权,因为有些时刻在程序范围之内,大概发现底子类并未包含我们想要的办法.若底子类来自一个库,大概由别的什么东西掌握着,RTTI就是一种很好的办理筹划:可担当一个新范例,然后增添自己的额外办法.在代码的其他地方,可以侦测自己的特定范例,并调用那个特别的办法.这样做不会破坏多形性以及程序的扩大本领,因为新范例的增添不要求查找程序中的switch语句.但在需求新特点的主体中增添新代码时,就必须用RTTI侦测自己特定的范例.
从某个特定类的好处的角度动身,在底子类里加入一个特点后,大概意味着从那个底子类衍生的其他全部类都必须得到一些无意义的“鸡肋”.这使得接口变得含义模糊.若有人从那个底子类担当,且必须覆盖抽象办法,这一现象便会使他们陷入困扰.比方目前用一个类构造来表示乐器(Instrument).假定我们想洁净管弦乐队中全部得当乐器的通气音栓(Spit Valve),此时的一个办法是在底子类Instrument中置入一个ClearSpitValve()办法.但这样做会造成一个误区,因为它表示着打击乐器和电子乐器中也有音栓.针对这种情形,RTTI供应了一个更公道的办理筹划,可将办法置入特定的类中(此时是Wind,即“通气口”)——这样做是可行的.但事实上一种更公道的筹划是将prepareInstrument()置入底子类中.初学者刚开始时常常看不到这一点,普通会认定自己必须利用RTTI.
最后,RTTI有时能办理效率问题.若代码大量应用了多形性,但此中的一个对象在履行效率上很有问题,便可用RTTI找出那个范例,然后写一段得当的代码,改良其效率.
以上是“<b>java rtti学习总结</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论