我觉得这是一个愚蠢的问题,但我是新手,我找不到明确的答案。
我有一个Activity实体和一个Sessions实体。每个活动可以有多个会话。每个会话都有一个持续时间属性。
现在我想要一个活动的平均会话持续时间。我应该将averageSessionDuration属性添加到我的Activity实体并更新它并在用户添加或删除会话时保留它,或者我可以将计算属性添加到我的Activity类中,并让它计算平均会话持续时间。叫什么?
我想使用计算属性时,平均会话持续时间会比必要时更频繁地计算,但我不知道这是否重要,最终是否会产生影响?
我不知道窗帘后面发生了什么,取得每个会话持续时间并取平均值比仅获取在必要时持续更新的averageSessionDuration属性更昂贵?在这种情况下,最佳做法是什么?还有其他我想念的东西吗?
提前致谢,
丹尼尔
答案 0 :(得分:3)
它很可能在性能方面没有任何差别,但如果您使用计算属性而不是尝试确保在保存其他值时始终保持最新状态,那么它将是更干净的代码(我认为)。
如果您害怕性能问题,您可以随时缓存每个会话的计算值,并在更改应用程序中的值时使缓存无效。这可能是两个世界中最好的。
这是一个品味问题,我确信有支持双方的论据。
答案 1 :(得分:2)
如果您打算获取该属性,那么您将希望保留它。这是假设一个SQLite商店。
如果你永远不会从中获取,那么计算属性将更加清晰。
这是唯一对做出决定很重要的问题。