我问这个问题是为了获得关于胶水代码主题的一些意见。
例如,假设您有一个类(伪代码):
class MyClass
int attribute a
string attribute b
为了表示该数据模型,您有一个滑块和一个文本框来表示 a,还有一个文本框并说...窗口标签来表示 b。
显然,当这些视图对象之一发生更改时,您希望更新其他视图对象。但是,更新整个视图显然是低效的。
method onSomethingHappened(uiObject)
model.appropriateAttribute = uiObject.value
问题是,你对下一步做什么有什么看法?模型对象是否应该实现一个回调,在值发生更改时通知侦听器,允许编写如下粘合代码:
method modelChangedCallback(model, attribute)
uiObject1.value = model.a
uiObject2.value = model.a
您可以在哪里检查更改的属性是什么,并做出相应的响应?大多数情况下,这是 Mac 上 Objective-C 和 Cocoa 中的模型。
或者,您宁愿将责任完全放在胶水代码中吗?
method onSomethingHappened(uiObject)
model.appropriateAttribute = uiObject.value
self.updateForAttribute("appropriateAttribute")
当您的项目变大时,这两种方法都会变得非常麻烦(就像胶水代码的问题一样)。也许还有其他方法。你怎么看?
感谢您的任何意见!