在他们的 4.0 版本中,他们引入了一个新的 Property 类,可以帮助您一般地设置或获取对象的内部值。此处描述(向下滚动一点):http://developer.android.com/sdk/android-4.0.html#api并在此处定义:http://developer.android.com/reference/android/util/Property.html
同时,他们说要避免使用内部 getter/setter。 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
了,所以我只能希望一切顺利。
关于android - API14 中的新 Property 类比内部 getter/setter 有何优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8018729/