2009-06-15 9 views
0

私は基本クラスから継承し、ユーザーがそれらを編集する方法を決定しようとしている複数のオブジェクトがあります。各サブクラスにのみ適用される多くの共通フィールドといくつかのフィールドがあります。これに対処するためのデザインパターンはありますか?複数の同様のオブジェクトを管理する方法を扱うデザインパターンはありますか?

私はそれぞれに1つのWebページを持つことができると思っていたし、単一のWebページを持ち、サブクラスのフィールドを表示/非表示にすることもできた。私はそれぞれの賛否両論を考えることができます。それを処理する標準的な方法があるかどうかを知ることはうれしいでしょう。

答えて

0

並列クラス階層を使用することができます(これはデザインパターンではありません)。このアイデアを使用して、基本クラスのプロパティを処理するための基本コードビハインドクラスを作成し、これから派生したクラスを作成して、派生クラスの追加プロパティを処理するために必要なUIをサポートします。

並列クラスライブラリは、問題を引き起こす可能性があります。新しい派生クラスを作成する場合は、新しい派生UIクラスなども作成する必要がありますが、派生したUIクラスがシンプルな場合は、あまり問題になることはありません。

編集:これはあなたがダウンして行くルートがある場合は
は、あなたがして、ユーザーコントロールではなく、ページの階層を作成し、実行時に自分のページに適切なユーザーコントロールを追加したいと思います。

0

私はダイナミックなタブでかなり幸運を覚えました。一般的なフィールドはすべて[メイン]タブに表示されます。特定のクラスに依存するものはすべて、同様の名前のタブに表示されます。

実行時に私はオブジェクトがどれであるかを判断し、適切なタブを表示します。

0

クラス階層に対する反対のアプローチは、構成学校です。この問題の構成的アプローチは、クラスの基本データ(通常は構成オブジェクトがコアオブジェクトに保持される)のための基本的な表示制御と、特殊なデータの特殊な制御(これはそれ自身の別個のオブジェクト)。

これにはいくつかの利点といくつかの欠点があります。最も重要な利点は、クラスツリー全体に共通のデータセットタイプを表示するための無限に拡張可能なシステムがあり、通常の作曲スタイルの強みを得ることです。クラスの定義を変更すると、より自立したユニット。最も重要な欠点は、クラスの抽象化とその視覚的表現/表現を単一の「エレガントな」(エレガンスはしばしばクラスツリーに関しては錯覚である)というよりはむしろ、多くのサブユニットに分割する必要があることです。シリアライゼーション。

関連する問題