Werkvertrag dienstleistung Muster

Diese Methode ist identisch mit dem vorherigen Request/Reply-Beispiel, aber das Festlegen der IsOneWay-Eigenschaft auf true bedeutet, dass der Dienstvorgang zwar identisch ist, aber keine Antwortnachricht sendet und Clients sofort zurückgeben, sobald die ausgehende Nachricht an die Kanalschicht übergeben wurde. Ein Beispiel finden Sie unter Gewusst wie: Erstellen eines Einwegvertrags. Weitere Informationen zum einwegweggebispchenmuster finden Sie unter One-Way Services. Die Klassen sollten in Subsystemen organisiert werden, die in der Art und Weise, wie sie ihre Dienste erbringen, relativ autonom sind und lose mit anderen Teilsystemen gekoppelt sind. Dies reduziert die Anzahl der zu testenden Kontrollflüsse und die möglichen Nebenwirkungen. Design by Contract (DBC) ist eine ursprünglich von Betrand Meyer [97] vorgeschlagene Methode zur Gestaltung objekt- und komponentenorientierter Systeme. Das Hauptmerkmal von DBC ist, dass Klassen ihr Verhalten und Zusammenspiel durch Verträge definieren. Ein Vertrag besteht in diesem Zusammenhang im Wesentlichen aus einer Klasseninvariante und Vor- und Nachkonditionen für alle Methoden der Klassenschnittstelle. Beachten Sie, dass, sofern Sie kein anderes zugrunde liegendes Nachrichtenmuster angeben, sogar Dienstvorgänge, die void zurückgeben (Nichts in Visual Basic), den Austausch von Ansaglichs-/Antwortnachrichten sind. Das Ergebnis für Ihren Vorgang ist, dass der Client die Verarbeitung stoppt, bis die Rückgabenachricht empfangen wird, es sei denn, ein Client ruft den Vorgang asynchron auf, obwohl diese Nachricht im Normalfall leer ist.

Das folgende Codebeispiel zeigt einen Vorgang, der erst zurückgegeben wird, wenn der Client als Antwort eine leere Nachricht erhalten hat. Arbeitnehmer mit Null-Stunden-Verträgen haben nach wie vor Anspruch auf einige gesetzliche Arbeitsrechte, einschließlich des gesetzlichen Mindestlohns und des nationalen Mindestlohns/ des nationalen Mindestlohns. Jetzt ist der Code nicht an einen bestimmten Anbieter oder sogar Laravel gekoppelt. Da das Vertragspaket keine Implementierung und keine Abhängigkeiten enthält, können Sie problemlos eine alternative Implementierung eines bestimmten Vertrags schreiben, sodass Sie die Cacheimplementierung ersetzen können, ohne den Cache verbrauchenden Code zu ändern. David Orchard gibt einige Hinweise darauf, wie wir dieses Problem hätten vermeiden können, wenn er auf das Robustheitsprinzip des Internetprotokolls anspielt: “Im Allgemeinen muss eine Umsetzung in ihrem Sendungsverhalten konservativ und liberal in ihrem Empfangsverhalten sein”. Wir können dieses Prinzip im Kontext der Service-Entwicklung erweitern, indem wir sagen, dass Nachrichtenempfänger “gerade genug” Validierung implementieren sollten: Das heißt, sie sollten nur Daten verarbeiten, die zu den von ihnen implementierten Geschäftsfunktionen beitragen, und nur explizit gebundene oder gezielte Validierung der empfangenen Daten durchführen sollten – im Gegensatz zu der implizit unbegrenzt enbounded, “All-or-nothing”-Validierung, die der XSD-Verarbeitung innewohnt.

About the Author: