Я задал этот вопрос, чтобы узнать мнение по поводу кода клея.
Например, представьте, что у вас есть класс (псевдокод):
class MyClass
int attribute a
string attribute b
И для представления этой модели данных у вас есть ОБА ползунок и текстовое поле для представления, а также текстпоставьте флажок и скажите ... метку окна для представления b.
Очевидно, что когда один из этих объектов просмотра изменяется, вы хотите обновить остальные.Однако обновление всего представления явно неэффективно.
method onSomethingHappened(uiObject)
model.appropriateAttribute = uiObject.value
Вопрос в том, что вы думаете о том, что делать дальше?Должен ли объект модели реализовывать обратный вызов, который уведомляет слушателя об изменении значения, позволяя написать связующий код, например:
method modelChangedCallback(model, attribute)
uiObject1.value = model.a
uiObject2.value = model.a
Где вы можете проверить, что это за атрибут, который изменился, и ответить соответствующим образом?Это модель в Objective-C и Cocoa на Mac, по большей части.
ИЛИ, вы бы предпочли, чтобы ответственность лежала полностью в коде клея?
method onSomethingHappened(uiObject)
model.appropriateAttribute = uiObject.value
self.updateForAttribute("appropriateAttribute")
Оба изэти подходы могут стать довольно сложными (как и проблема с клеевым кодом), когда ваш проект становится большим.Может быть, есть другие подходы.Как вы думаете?
Спасибо за любой вклад!