3

我有一个正在开发的应用程序,它有许多相互依赖的数据。基本上,我有一组数字字段,用于计算其他数字字段,然后用于计算其他字段。我正在尝试确定处理潜在大量更改的最佳方法。

我想到的一种解决方案是,我可以覆盖用户可以修改的值的设置器以进行计算,然后适当地更新数据对象中的其他值。最大的缺点是需要编写大量的(有点样板的)代码。

我想到的另一个解决方案是使用 Key-Value Observing 来处理数据更改,然后根据这些更改更新依赖值。请注意,除非独立值更新,否则任何依赖值都不会更新。虽然我认为这会更优雅一些,但我担心潜在的性能问题,或者我可能没有考虑的问题。

我错过了第三种方式吗?此类工作是否有任何最佳实践?我知道我可能不得不编写一堆某种样板代码——我希望代码最容易维护,并且代码量尽可能少。

4

1 回答 1

1

KVO 不应该有任何性能问题,除非你有很多字段或非常频繁的更新,但它的 API 并不是最好的。一个缺点是它通过一种方法汇集所有通知。这可能是也可能不是问题,具体取决于您的字段数量和类型。

通知也可能是一个不错的选择。每个字段都可以有一个通知名称,它将从中发布更改,并且其他字段可以在没有指向源字段的显式指针的情况下进行观察。

还有协议委托,虽然更简单,性能更高,但根据您的操作方式,可能会相当繁琐。

于 2011-05-24T23:20:27.363 回答