1

多くの場合、ユーザー インデックスのプロパティまたは一部のデータの一連のインデックスを持つビジネス オブジェクトを使用します。このオブジェクトをフォームまたはその他のビューに表示する場合、ユーザーのフルネームまたはデータのその他のプロパティが必要です。通常、別のクラス myObjectView などを作成します。このケースを処理する最善の方法は何ですか?

さらに明確にするために: クラスに課題トラッカーがあり、課題のクラスにプロパティとして IxCreatedByUser と IxAttachment 値のコレクション (添付ファイル レコードのインデックス) があるとします。これを Web ページに表示するときに、IxCreatedByUser の代わりに John Doe を表示し、ページに添付ファイルとファイル名へのリンクを表示したいと考えています。そのため、通常は、Attachment オブジェクトの Collection と CreatedByUserFullName プロパティなどを使用して新しいクラスを作成します。ページにデータを表示するためにこの 2 番目のクラスを作成するのは間違っているように感じます。おそらく私は間違っていますか?

4

3 に答える 3

2

ファサードパターン。

複数のデータソースの複雑さを抽象化するファサードパターンを作成するというあなたのアプローチは、多くの場合適切であり、コードを理解しやすくするだろうと思います。

間接化のレベルがコードを読みやすくする最初の試みを台無しにするので、抽象化の層が多すぎるように注意する必要があります。特に、他の場所で行ったことと一致するようにクラスを作成するだけだと感じた場合は特にそうです。たとえば、myLoanViewがある場合、必ずしもシステム内のすべてのダイアログに対してmyViewを作成する必要はありません。コードから10ステップ戻り、再利用可能で直感的な抽象化であるファサードを作成すると、いくつかの場所で使用できます。

あなたの挑戦の正確な性質について自由に詳しく説明してください。

于 2008-09-23T00:48:29.133 に答える
1

重要な原則の 1 つは、各クラスには目的が定義されている必要があるということです。「ビジネス オブジェクト」クラスの目的が、ビジネス オブジェクトに関連する関連データを公開することである場合、検索記述の要求を、それを担当する関連クラスに委譲するクラスのプロパティを作成することは、完全に合理的な場合があります。情報。クラスに固有の書式設定はすべて、プロパティで行われます。

于 2008-09-23T00:38:12.497 に答える
0

この (かなり一般的な IMO) パターンの処理方法を決定する際に役立つガイドラインを次に示します。

  1. 頻繁に変更されないルックアップ テーブル (州や国のテーブルにリンクする住所のテーブルなど) への簡単なリンクだけが必要な場合は、ルックアップの遅延ロードされた静的なコピーを保持できます。テーブル。

  2. 表示目的だけで多くの結合またはサブクエリをロードする必要がある非常に大きなクラスがある場合は、上記のように、表示目的で「view」または「info」クラスを作成することをお勧めします。XInfo クラス (表示用) が X クラス (編集用) よりもかなり速くロードされることを確認してください。これは、データベース側でビューを使用することが非常に良い考えである状況です。

于 2008-10-06T23:39:21.283 に答える