Frage

... und wie man am besten Griff Erfolg / Misserfolg Feedback zu der Ansicht Schicht.

Die Optionen sind:

doBusinessLogic(things)

oder

for (Thing thing : things) {
  doBusinessLogic(thing)
}

Unter der Annahme, dass wir eine View-Ebene wollen den Erfolg / Fehler-Feedback in einer konsistenten Art und Weise (das heißt von einzelnen oder mehreren Operationen an Wertobjekten) empfängt, was ist der beste Ansatz?

Zur Verdeutlichung:

Typen mehrere Ausnahmebehandlung von einem Business-Logik-Aufruf in der View-Ebene geworfen ist Code schwer und verursacht auch Wartungsprobleme (neue Ausnahmen eingeführt, die die Präsentationsschicht nicht kennt). Es scheint besser für die Business-Logik Aufruf Handle Fehler auf mehrere Wertobjekte und ‚Paket‘ sie für die Ansicht mit in einer konsistenten Art und Weise zu behandeln.

War es hilfreich?

Lösung

Wie wäre es etwas entlang der Linien des letzteren Vorschlag:

for (businessObject : businessObjects) { businessObject.doBusinessLogic() }

Die Idee ist, die Business-Logik in einer Methode des Business-Objekts zu setzen. Ihre Ansicht Schicht kann Schleife über alle die Business-Objekte, erzählt jedes ihrer Geschäfte zu machen. Wie jeder tut sein Geschäft ist in der Logik des Business-Objekts in der Business-Schicht. Sie können Fehler behandeln und so durch Werte aus der doBusinessLogic Methode Rückkehr oder durch Ausnahmen für unangenehme Vorkommnisse werfen.

Wenn Sie tun Cross-Business-Objekt-Logik (dh Logik, die auf mehr als einem einzigen Business-Objekt arbeitet), vielleicht könnten Sie eine businessObjectManager Klasse erstellen, die Methoden haben könnte, die in einem oder mehreren Geschäftsobjekten nehmen und arbeitet auf Sie. Somit kann durch in der Business-Schicht das Manager-Objekt setzt, halten Sie noch alle Ihre Geschäftslogik in der Business-Schicht.

Andere Tipps

Schließlich ging ich für die erste Option und erstellt eine leichte generic „Ergebnis Bündel“ Klasse, dass kapseln Erfolge und Misserfolge eine Aktion auf einer Sammlung von Objekten. Ein Erfolg oder Misserfolg ist mit der entsprechenden Objekt-ID eingegeben.

Ein bundlesis innerhalb jedes Geschäftslogik Anruf bevölkert und zu der Ansicht Schicht zurückgeführt. Ausnahmen im geworfen ‚ausführt Aktion auf Objekt‘ Business-Logik-Schleife gefangen werden und ein entsprechendes Versagen zu dem Ergebnis Bündel hinzugefügt (verkeilte zum Objekt ID).

Die View-Schicht hat eine einfache Hilfsmethode, dass präsentiert das Feedback an den Benutzer im Ergebnis Bundle enthalten.

Das funktioniert sehr gut.

Ich denke, der Ansatz, der Sie mit diesem nehmen ist, was mit Ihrem System am besten paßt.

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