虚拟函数性能缺陷
时间:2023-03-26 13:16:01 | 来源:营销百科
时间:2023-03-26 13:16:01 来源:营销百科
虚拟函数性能缺陷:这样可以得出结论,即虚拟函数引入的性能缺陷只是无法利用内联函数。
可以进一步设想,非虚拟函数的常规设计假如需要增加一种新的图形类型,或者删除一种不再支持的图形类型,都必须修改该图形系统所有使用者的所有与类型相关的函数调用的代码。这里使用者只有Canvas一个,与类型相关的函数调用代码也只有Paint和RotateSelected两处。但是在一个复杂的程序中,其使用者很多。并且类型相关的函数调用很多时,每次对图形系统的修改都会波及到这些使用者。可以看出不使用虚拟函数的常规设计增加了代码的耦合度,模块化不强,因此带来的可扩展性、可维护性,以及代码的可读性方面都极大降低。面向对象编程的一个重要目的就是增加程序的可扩展性和可维护性,即当程序的业务逻辑发生变化时,对原有程序的修改非常方便。而不至于对原有代码大动干戈,从而降低因为业务逻辑的改变而增加出错的可能性。根据这点分析,虚拟函数可以大大提升程序的可扩展性及可维护性。
因此在性能和其他方面特性的选择方面,需要开发人员根据实际情况进行权衡和取舍。当然在权衡之前,需要通过性能检测确认性能的瓶颈是由于虚拟函数没有利用到内联函数的优势这一缺陷引起;否则可以不必考虑虚拟函数的影响。