4

これは少し曖昧かもしれませんが、私はUIを更新するいくつかのクラスがあるプログラムに取り組んでいます。基本的にすべてのUIリクエストを(とりわけ)受け取り、それらをUI自体にルーティングする「ミドルマン」クラスを作成しました。これにより、UIクラスはミドルマンとのみ対話します。

問題は、UIクラスのインターフェイスに最大20の異なる関数があり、私の仲介者クラスは基本的に下位レベルのクラスから呼び出しを受け取り、UIで本質的に同じ関数を呼び出すことです。これはどういうわけか全体の目的を打ち負かしています。これはよくある問題だと思います。これを行うためのよりエレガントな方法はありますか?

ありがとう、

午後

4

2 に答える 2

2

バックエンドでUI関連のものを参照する必要がないのは素晴らしいことです。これがあなたがこれをしたい理由だと思います。

その場合、実行できるのは、パブリッシュ/サブスクライブパターンオブザーバーパターンなど)を実装することです。そうすれば、UIを具体的に参照する必要はありません。バックエンドから「公開」し、UIからそれらのイベントをサブスクライブすることができます。

または、インターフェースからUIを継承し、それに必要なメソッドを指定することもできます。次に、バックエンドのインターフェースのみを参照します。

于 2010-11-10T02:12:07.040 に答える
2

残念ながら、UIの構築に何を使用しているかについては実際には述べていません。ただし、WPF(またはSilverlight)とデータバインディングを使用すると、問題全体がすぐに解消される可能性があります。一言で言えば、UIのアイテムは、バッキングクラスのプロパティとコマンドにバインドされます。プロパティが変更されると、PropertyChangedイベントが発生し、UIはそれ自体を更新することを認識します。詳細については、MVVMでの検索を開始してください。

結局のところ、これは実際にはオブザーバーパターンの形式ですが、すべての配線を自分で行う必要はありません。

于 2010-11-10T03:04:54.317 に答える