グルーコードに関する意見を得るために、この質問をしました。
たとえば、クラス (疑似コード) があるとします。
class MyClass
int attribute a
string attribute b
そして、そのデータ モデルを表すには、a を表すスライダーとテキスト ボックスの両方と、b を表すウィンドウ ラベルのテキスト ボックスがあります。
明らかに、これらのビュー オブジェクトの 1 つが変更された場合、他のオブジェクトも更新する必要があります。ただし、ビュー全体を更新するのは明らかに非効率的です。
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")
これらのアプローチはどちらも、プロジェクトが大きくなると (グルー コードの問題と同様に) 非常に複雑になる可能性があります。他のアプローチがあるかもしれません。どう思いますか?
ご意見ありがとうございます。