3

次のシナリオで立ち往生しています。私は満足していないコードの匂いがありますが、それに対する解決策は同じように複雑に見えますが、方法が異なるだけです。

ビジネス オブジェクトを表すシーン グラフがあります。ビジネス オブジェクト自体ができるだけシンプルになるように設計しました。それらは実質的に POJO です。

現在、1 つのエンティティが異なるノードによってシーン グラフの複数の領域に表示される場合があります。

エンティティが変更されると、関連するすべてのシーン グラフ ノードが変更されます。

一度に 50000 を超えるエンティティが画面に表示されるため、すべてのエンティティでオブザーバー パターンを使用することをためらっています。

すべての変更はビューから開始されるため、現在、シーン グラフを再帰的に処理し、変更されたエンティティに関連付けられているすべてのノードを強制的に再読み込みしています。でも気分が悪い。

これを改善する方法について何か提案はありますか?

4

2 に答える 2

3

ビジネス オブジェクト == エンティティ? 画面上に 50k 個のノードがノードとして表示され、一部のエンティティには複数のノードがあります。ユーザー アクションによってエンティティの状態が変化するため、一部のノードを更新する必要があります。しかしもちろん、エンティティはノードについて知りません。

エンティティをラップするプロキシ オブジェクトが必要です。彼はノードとの関係を理解し​​ています。エンティティへの更新は彼を介して行われるため、更新を完了してから関連するノードに通知できます。これにより、更新を探す一連のノードを反復する必要がなくなります。

于 2009-11-18T17:17:01.923 に答える
2

エンティティは、ビューの更新を担当するオブジェクトによってポーリングされる単一のキューに更新を送信する必要があります。

于 2009-11-18T17:04:45.083 に答える