Frage

Ich spiele mit dem Bau eines BLL für meine Bewerbung. Nach dem, was ich gesehen habe / gelesen habe, scheint der BLL auf Staurose zu sein. Bedeutet dies nicht, dass alle BLL -Methoden statisch sein könnten? Oder würde ich zumindest immer nur eine Instanz jeder BLL -Klasse brauchen? Was mir aus irgendeinem Grund seltsam erscheint, also dachte ich, ich überprüfen besser, dass ich nicht das falsche Ende des Stocks bekomme, bevor ich mich zu weit in mein Experimentieren befasste.

Ich denke auch, dass dies bedeutet, dass die BLL -Objekte niemals Daten enthalten sollten, da die Daten den Status darstellen. Für jede aufgerufene BLL -Operation müssen alle Daten, die benötigt werden, angefordert (oder vom Cache abgerufen) und dann weggeworfen werden. Klingt das richtig?

Vielen Dank.

War es hilfreich?

Lösung

Theoretisch kann ein staatenloser BLL bedeuten, dass alle Methoden statisch sein können.

Es gibt jedoch einige Überlegungen, die Sie dazu bringen können, Instanzen von BLL -Objekten anstelle von statischer Sprache zu verwenden.

  1. Statische Methoden führen eine enge Kopplung zwischen den Klassen ein und verhindern, dass Sie EG -Schnittstellen verwenden, um Abhängigkeiten locker zu koppeln. Die Verwendung von Schnittstellen verbessert die Testbarkeit des BLL, da sie jetzt beim Schreiben von Unit -Tests für die Serviceschicht verspottet werden kann. Wenn Ihre BLL -Methoden statisch sind, können Sie dies im Allgemeinen ohne „Problemumgehungen“ nicht tun (z. B. würden Sie benötigen TypeMock oder Microsoft Fakes in einer .NET -Umgebung).

  2. Bei einer komplexen BLL -Methode (z. B. großer Transaktionslogik) möchten Sie möglicherweise jedes Ihrer Geschäftsbereitschaft in mehrere diskrete Methoden neu verwandeln, und sammeln möglicherweise alle Validierungs- und Regelverstöße in ein einzelnes aggregiertes Ergebnis, das alle alle der gesamten Enthaltungen enthält. Verstöße. In diesem Fall kann es umständlich sein, die Entität / Entitäten zu validieren und die Regelverletzungen zu sammeln und stattdessen für eine staatliche Speicherung dieser in einer Klasseninstanz zu wählen. Eine Basisklasse oder ein generisches für Ihre Instanz -BLL kann hier helfen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top