У меня есть приложение, над которым я работаю, и оно содержит несколько взаимосвязанных данных. По сути, у меня есть набор числовых полей, которые используются для вычисления других числовых полей, которые затем используются для вычисления других полей. Я пытаюсь определить наилучший способ обработки потенциально большого количества изменений.
Одним из решений, о котором я подумал, является то, что я могу переопределить установщики значений, которые могут быть изменены пользователем, чтобы выполнять вычисления, а затем соответствующим образом обновить другие значения в объекте данных. Самым большим недостатком этого является огромное количество (несколько шаблонного) кода, который необходимо написать.
Другое решение, о котором я подумал, - это использование Key-Value Observing для обработки изменений данных, а затем для обновления зависимых значений от этих изменений. Обратите внимание, что ни одно из зависимых значений не будет обновлено, за исключением случаев, когда обновляется независимое значение. Хотя я думаю, что это будет немного элегантнее, я обеспокоен потенциальными проблемами с производительностью или проблемами, которые я, возможно, не рассматриваю.
Есть третий способ, который мне не хватает? Есть ли лучшие практики для этого вида работы? Я знаю, что мне, вероятно, придется написать несколько шаблонных кодов - я хотел бы, чтобы код был максимально простым в обслуживании и имел наименьшее количество кода.