-1

Swing アプリケーションでは、テキスト ボックス 1 はコンボ ボックス 1 の選択された項目に依存します。また、テキスト ボックス 2 のテキストにも依存します。このように、テキスト ボックス 1 はさまざまなコンポーネントに依存する場合があります。これらすべての変更に対して、テキスト ボックス 1 の update() メソッドが呼び出されます (Observable Pattern ルールに従います)。どのコンポーネントが変更されたかを区別する方法は?

4

2 に答える 2

1

私はあなたを理解したかどうかわかりません。しかし、オブザーバーパターンは間違った選択だと思います。オブザーバーパターンはビジーウェイトの問題を解決し、多くのオブジェクトにサブジェクト(オブザーバブル)が変更されたことを通知します。その逆はありません。パターンルールを曲げて、オブザーバーに変更されたというメッセージをサブジェクトに送信させることもできますが、それはもはやオブザーバーパターンではありません。

注:デザインパターンを扱うときは、実装方法が非常に近く、コードと区別できないため、常に解決するものを確認してください。

于 2012-05-26T23:33:07.087 に答える
0

オブザーバーの実装方法に応じて、通常は「送信者」またはイベントを発生させるコンポーネントを提供します。

そうすることで、Textbox1 は 3 つのイベントをサブスクライブしますが、送信者/コンポーネントが誰であるかを確認できます。

于 2012-05-26T23:22:35.970 に答える