4

私が取り組んでいるアプリケーションでは、カスタム パーツをモデル化するために、複雑なパラメーター化と構成が必要です。パラメータ 'A' を設定すると 'B' と 'C' の特定の値が無効になる、またはパラメータ 'D' の値に追加の制約が追加されるなど、異なるパラメータ間にはさまざまな相互依存性があります。

現在、これはルックアップ テーブルにすべてのパラメータを格納し、それらに対してルールを実行することで解決されています。ルールは XML で手書きされ、読み込まれ、ルール エンジンで使用される中間形式に変換されます。パラメータが変更されるたびに、すべてのルールが再実行されます。

これは同時に非常に遅く、エラーが発生しやすくなります。

グラフのサブセットのみを更新できる (DAG) ベースのアプローチを使用すると有益であると思います。

これは良い考えですか?より良いアプローチを知っていますか?同様の問題を経験したことがある場合は、どのように解決しましたか?

編集:変更時にパラメーターの依存サブセットのみを更新する必要がある設計を実現しようとしています。現在、ルールは変更ごとにグローバルに再実行されます。パラメータはデフォルトに設定されていますが、ユーザーが変更できます。パラメータの値によっては、他のデフォルトが異なる場合があります。

4

1 に答える 1

1

これは良い考えですか?

はい。DAG を作成し、DFS トラバーサルを実行して、依存関係チェーンを把握できます。

より良いアプローチを知っていますか?同様の問題を経験したことがある場合は、どのように解決しましたか?

私が理解していることから、DAG でモデル化できる複雑な依存構造があります。いずれかが変更された場合、依存コンポーネントを変更する必要があります。コンパイルはこれを何年も行ってきました。彼らによって行われた依存関係の分析を調べたいと思うかもしれません。

別のアプローチは、 Observer パターンによってモデル化できます。ここで、各オブジェクトは、何かが変更された場合にオブザーバーに通知する方法を公開します。依存オブジェクトは通知をサブスクライブします。オブジェクトの状態を変更するイベントが発生すると、依存リスナーが呼び出されます。

于 2012-08-12T10:40:02.957 に答える