Question

J'ai utilisé Entity Framework 4.0 pour créer ma couche d'accès aux données. Ensuite, j'ai constaté que ma couche logique métier a les mêmes objets que DAL mais avec quelques extensions (c'est-à-dire, plus de propriétés, certaines fonctions et la validation des données chez les setters ...).

J'avais prévu d'avoir DAL et BLL dans des projets séparés et je cherchais les meilleures pratiques pour utiliser les cours d'entités dans BLL et empêcher la redondance dans le code.

Pendant que je cherchais et il y a deux idées majeures:

  1. Extension des classes d'entités à l'intérieur du même projet par des classes partielles
  2. Utilisation d'interfaces (implémentées par classe d'entité et classe BLL pertinente). L'ancien est plus populaire parmi les programmeurs.

Inconvénients pour les solutions ci-dessus:

  1. Nous devons ajouter le code au même projet dans le cadre de la classe partielle. C'est bon pour ajouter des propriétés et des méthodes, mais ce n'est pas bon pour remplacer quelque chose (c'est-à-dire, l'ajout de validations avant de définir une propriété sur Business Logic Layer)
  2. Si le modèle d'entité est modifié, nous devons à nouveau extraire manuellement les interfaces des classes d'entités et un autre changement dans la classe liée à BLL est nécessaire (deux travaux manuels).

Ma question est de savoir pourquoi nous n'héritons tout simplement pas nos classes BLL à partir de classes d'entités pertinentes et étendons / remplacez leurs méthodes et propriétés?

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top