2010-09-18 18 views
0

Comme suite à ma question précédente, (voir https://stackoverflow.com/questions/3737848/creating-a-loosely-coupled-scalable-software-architectureAbstracting la couche de données (DAL) d'une application à trois niveaux

Quelqu'un suggère aussi résumé le DAL comme j'Abstraite la BLL de la couche présentation sur mon projet à trois niveaux Est-ce que j'ai aussi besoin d'une usine entre la BLL et la DAL? J'ai besoin de votre contribution les gars .. merci

+2

Je ne vois pas pourquoi quelqu'un est en train de voter pour fermer ceci, cela semble être une bonne question. Il demande des meilleures pratiques et des approches pour l'abstraction de son accès aux données. Cela ressemble au genre de chose que nous voulons favoriser. Peut-être reformuler la question un peu? – David

+0

@David: sa question précédente est très détaillée, avec un peu de contexte. Cette continuation manque de ça. Le PO obtiendrait de bien meilleures réponses, IMO, s'il édite sa question précédente avec ceci. –

Répondre

2

Intéressant - Je mettrais l'abstraction entre le BL et le DAL avant que je Pour ce faire, pour la couche de présentation

L'approche utilisée dans votre autre question semble raisonnable - Pourquoi ne réutilises-tu pas ça?

  • Oui, vous avez besoin d'une usine; mais vous pouvez l'inclure dans une classe/un assemblage commun et lui renvoyer simplement un object, que vous pouvez ensuite lancer au retour - i.e: au point dans le BL où il est appelé.
  • (pour l'exhaustivité :) en utilisant Activator.CreateInstance() (comme vous l'avez utilisé dans votre autre question) est la bonne façon de procéder.
  • Pour DAL j'ai tendance à utiliser les valeurs stockées dans la configuration (comme arguments pour passer en usine); il n'est pas courant de changer souvent l'implémentation de la couche DAL - donc la configuration fonctionne bien pour moi.
  • Observez le Interface Segregation Principle (ISP) lors de la conception de la contractr/abstraction entre le BL et DAL - si vous le faites correctement, vous serez en mesure de mélanger et mettre en œuvre différentes implémentations physiques DAL à la fois.
  • Si vous conservez les DTO et l'usine dans un assemblage commun (éventuellement le même), il est facile de les réutiliser avec le BL et diverses implémentations DAL - avec l'avertissement que vous conservez cette classe commune comme étant dépourvue de dépendances comme possble. Si vous faites cela, vous serez en mesure d'ajouter/udpater les implémentations DAL sans recompiler et redéployer l'ensemble du système.