2009-02-03 3 views
0

Si j'ai un objet métier avec 50 champs, et que j'ai besoin de remplir quelque chose comme une liste déroulante ou une grille avec seulement 3 champs de l'objet métier pour permettre une navigation rapide.Meilleure pratique pour le sous-ensemble de la structure des champs d'objet métier?

Est-il recommandé de charger le BO entièrement rempli, puis de saisir les quelques champs obligatoires dans votre couche de présentation?

Il semble inefficace de remplir une collection de Bo de cette taille, mais les seules autres façons semblent être de retourner des BO partiellement peuplés avec juste les champs dont vous avez besoin pour une interface particulière qui serait difficile à gérer si vous avez beaucoup de Exigences d'interface utilisateur similaires, ou faire un baseclass comme MyBusinessObjectHeader qui contient les champs puis faire MyBusinessObject l'hériter et mettre en œuvre le reste des champs, mais cela lierait trop votre interface utilisateur il semble.

Quelle est la meilleure pratique pour ce type de situation?

Répondre

2

Je crée une liste séparée en lecture seule d'objets de résumé en lecture seule (ou structs) qui sont légers et ne peuvent pas être manipulés. La collection peut être personnalisée pour tous les besoins que vous pourriez avoir comme d'habitude. La récupération d'un objet complet peut être utilisée en passant un objet "digest" à une conversion de type, ou une fabrique ou un constructeur - quelles que soient les techniques que vous utilisez.

Notez qu'il s'agit d'une optimisation qui se produit uniquement lorsqu'un ensemble d'objets complets devient trop lent. Il peut facilement être créé à ce moment-là. Généralement, ces classes ne sont pas créées jusqu'à ce que nécessaire.

0

Il y a beaucoup de frameworks qui font ce genre de mapping o/r dont vous parlez.

Vous échangez un peu plus de frais généraux pour une facilité d'utilisation et une configuration robuste.

Voir Hibernate ou NHibernate si vous utilisez .net.

Questions connexes