Wie entwerfe ich eine Datenzugriffsebene entsprechend?

7

Ich habe die folgende Data Access Layer (DAL). Ich habe mich gefragt, ob es richtig eingerichtet ist, oder ob ich es verbessern muss?

%Vor%

Ich habe die Speicherschicht von der User-Klasse getrennt, um auf die Methodensammlung zuzugreifen, die außerdem jede benutzerdefinierte DAL aufruft.

Ist die Verwendung von static in der DAL-Implementierung korrekt?

Bitte schlagen Sie Korrekturen oder Möglichkeiten vor, die ich verbessern kann. Ich habe nicht viel Erfahrung mit dem Schreiben von Code in Schichten.

    
Munish Goyal 06.01.2011, 18:08
quelle

3 Antworten

12

Keine dieser Klassen sollte static sein. Ich denke nicht, dass Sie Ihre Klassen DAL entweder nennen sollten, weil es eine Abkürzung für Data Access Layer ist, und eine Klasse an sich ist keine Ebene (zumindest in meinen Augen). Sie können stattdessen den weit verbreiteten Begriff Repository verwenden. Ich schlage vor, Sie tun etwas wie das Folgende:

%Vor%

Beachten Sie, dass UserService mit einer Instanz der abstrakten Klasse UserRepository in ihren Konstruktor eingefügt wird. Sie können ein Dependency Injection (DI) -Framework verwenden, um dies automatisch für Sie durchzuführen, z. B. Windsor Castle von Castle-Projekt . Sie können eine Zuordnung von Abstraktion ( UserRepository ) zur konkreten Implementierung (z. B. SqlUserRepository ) in einer Konfigurationsdatei oder im Code angeben.

Ich hoffe, das weist Sie in die richtige Richtung, und bitte fragen Sie, ob Sie weitere Informationen benötigen.

    
Klaus Byskov Pedersen 06.01.2011, 18:25
quelle
6

Davy Brion hat eine ausgezeichnete Reihe von Blog-Posts zu diesem Thema: die Erstellen Sie Ihre eigene Datenzugriffsschicht-Serie .

    
tijmenvdk 06.01.2011 23:25
quelle
6

Meine bescheidenen Meinungen

  1. Verwenden Sie Schnittstellen anstelle der abstrakten Klasse, wenn der Benutzer keine Hierarchie hat.
  2. Schreiben Sie eine generische DAL, damit Sie sie als Fassade für die DAL-Schicht wiederverwenden können.
  3. Lösen Sie die konkreten DALs über ein DI-Framework
  4. auf
Jahan Zinedine 06.01.2011 18:25
quelle