android – API14中的新Property类比内部getter / setter更好吗?

在他们的4.0版本中,他们引入了一个新的Property类,可以帮助您一般地设置或获取对象的内部值.这里描述(向下滚动一下):
http://developer.android.com/sdk/android-4.0.html#api并定义在这里:
http://developer.android.com/reference/android/util/Property.html

与此同时,他们说避免内部吸气者/制定者. http://developer.android.com/guide/practices/design/performance.html#internal_get_set

我是否遗漏了有关Property类如何违反此规则的内容?我理解它在编码方面有好处,但在性能方面却没有.

思考?

最佳答案

Am I missing something as to how the Property class doesn’t violate this rule?

它“违反”规则.然而,这条规则并不普遍,因为你引用的文件在开始时试图解释是非常痛苦的.该文件概述了“微观优化”.正如文件所述,这些“几乎不会破坏您的软件”.相反,它们是您可能希望在需要它的特定位置优化的东西.

除非它们导致特定的性能问题,否则您不需要避免使用内部getter和setter.您通常可以通过使用Traceview来确定这一点,并在getter和setter中花费大量时间.

因此,例如,在大型数据集的紧密循环中,尝试避免使用getter和setter可能是值得的.在这种情况之外,使用getter和setter不太可能对您或用户造成任何重大痛苦.再次,让像Traceview这样的工具成为您的指南.

现在,奇怪的是,Property的一些预期用途(例如,ObjectAnimator)似乎需要比平均大量代码更多的微优化.我想你只需要看看动画是否运行顺畅.我还没有直接使用ObjectAnimator,更不用说ICS的Property了,所以我只能希望这一切都运行良好.

点赞