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.
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:
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.
Davy Brion hat eine ausgezeichnete Reihe von Blog-Posts zu diesem Thema: die Erstellen Sie Ihre eigene Datenzugriffsschicht-Serie .
Meine bescheidenen Meinungen
Tags und Links .net c# design-patterns architecture data-access-layer