【发布时间】:2009-10-11 21:51:22
【问题描述】:
如果我有一个包含 50 个 getter/setter 的对象,其中每 10 个在一个新接口下定义,并且我将该对象键入为这些接口之一,它会提高性能吗?
不确定方法/变量查找是如何工作的,但似乎如果您将对象键入具有较少方法的对象,运行这些方法会更快?
我要的是 Actionscript/Java,但这适用于我猜想的任何语言。
因此,如果我有一个对象 DisplayObject,它实现了 5 个接口(IResizable、IScalable、IMovable、IMeasurable、IDrawable),并且我将其键入为 IResizable 以访问 x 和 y 访问器,这是一种优化吗?
否则,接口的唯一用途似乎是使您的代码更具可读性,并确保您坚持定义的模式。
【问题讨论】:
-
如果有答案,那将是非常特定于语言/平台的,当然没有简单的通用答案。
-
太完美了 :) 我想知道这些东西。
-
这两种功能都有。声明实例类型的变量不会改变所指向的实际对象的任何内容。
-
很可能强制转换和相关的类型检查实际上比您试图避免的虚函数调用惩罚更昂贵。
-
这就是我的想法,感谢您澄清这一点。我想知道,因为似乎那里的一些最好的开发人员创建了许多接口并将对象键入具有某些特定属性的接口,以便设置 x/y/width/height 等。它使代码清晰,但我认为它可能会减慢速度:)