2011-06-25 9 views
1

は私の問題で、プラグインアーキテクチャ、設計のジレンマここ

私はオーディオプラグインのカップルを持って、それらはすべてフィルター基本クラスから継承します。今私は、ユーザーがそれらを選択/設定できるように、それらのUIを作成することを楽しみにしています。

私が執着しているのは、プラグインのプロパティを実装することです。私は(ダブルまたはフロートタイプ)に対して、FilterParameter型としてそれらを作る

は、私が各プラグインタイプ用のDataTemplateを作成するよりも独特のDataTemplateを介して自分のUIを作成するために多くの方がはるかに簡単です。

FilterParameterクラスは説明が含まれて私が作成したタイプ、最小値、最大値、値メンバーです。実際の時間を節約することができますが、VS依存グラフを使用してデザインをリファクタリングしているうちに、プラグインの種類に多くの依存関係が作成されていることがわかりました。私は今継承階層で満足していますが、これらの関係プラグイン< - > FilterParameterは私のグラフをもう一度汚くします。

この場合、あなたはどうしますか?

ハードパスを行って、プロパティの単純な型を保持し、各型の専用のDataTemplateを用意しますか?

上記の方法と比較して長所と短所を考慮して、

ありがとうございます! :-)

答えて

0

です。

ジェネリックであれば仕事が終わり、このアプローチをサポートする他の設計上の制約やドライバがあったとすれば、おそらくそれに固執しています。

しかし、物事を一般的なものにしたり、狭い/窮屈に定義されたバンド内で機能しているものを制限し始めたり、システムの他の側面を歪め始めると、絶対にハードな道を行く時間があります。今は小さな痛み、後では痛みが少なくなります(大きい)。

+0

これは私がやったことですが、私はこれらの余分なタイプを削除しました。グラフはきれいになりました。最終的にUIのためのより多くの作業がありますが、少なくともそこには依存関係はありませんが、もっとシンプルでクリーンです:-) – Aybe

関連する問題