2016-04-19 10 views
0

Hallo Ich arbeite derzeit an einem Schulprojekt, in dem wir eine Web-Anwendung machen. Ich habe ein ziemlich gutes Verständnis über die 3-Tier-Architektur, aber in meiner Business-Logik-Ebene (BLL) habe ich fast keine Logik. Ich verwende die meisten Rohdaten, die ich von meiner Datenzugriffsebene (DAL) abrufe, um sie in meiner Präsentationsschicht (PL) anzuzeigen. In meinen Controller-Klassen rufe ich gerade meine Mapper-Fassaden-Klassen-Methoden auf, ohne etwas weiter zu machen. Also meine Frage ist:3-Tier-Architektur Business-Logik-Ebene ohne Logik

Ist das der richtige Weg, es zu tun, wie ich weiß, dass DAL nie direkt mit PL sprechen und umgekehrt, oder sollte ich die Controller einfach etwas anderes beschreibender nennen?

Außerdem habe ich eine Controller-Klasse für jede Entität gemacht, aber was ist, wenn ich einige Methoden habe, die zwischen zwei Entitäten liegen, was bedeutet, dass sie auf beide Entity-Klassen zugreifen.

Antwort

1

Es ist ziemlich selten in einer realen Anwendung, dass die Datenbank genau 1-1 mit der Darstellungsschicht abbildet. Normalerweise gibt es eine Normalisierung für SQL-Datenbanken oder eine Denormalisierung für NoSQL-DBs. Außerdem benötigt die Business-Schicht in der Regel eine Benutzeridentität für die Sicherheit, so dass sie nicht direkt auf die Datenbankdarstellung abgebildet wird.

Der letzte Punkt, den Sie über einen einzelnen Controller gemacht haben, der zwei Entitäten kennt, ist völlig in Ordnung. Aus diesem Grund verwenden Sie diese Entitäten nicht direkt in der Präsentationsebene. Sie können diese Entitäten in etwas einteilen, das die Benutzeroberfläche leichter verwenden kann, und sie auf der Datenzugriffsebene getrennt halten.

1

Sieht aus, als ob Sie eine Anemic Domain Model haben.

In "real life", wenn Ihre Domain so einfach ist, möchten Sie vielleicht die vielschichtige, maßgeschneiderte Architektur überspringen und gehen Sie für eine einfachere Weise wie Transaction Script oder Cookie-Cutter-RAD-Ansätze, wo viel Code kann automatisch generiert werden.

+0

Okay cool danke für die Eingabe, klingt Logik! Wir müssen die 3-Tier-Architektur für Lernzwecke nutzen (: –