Private anfrage Muster

Eines der am häufigsten verwendeten Entwurfsmuster ist das Werksmuster. In diesem Muster erstellt eine Klasse einfach das Objekt, das Sie verwenden möchten. Betrachten Sie das folgende Beispiel des Factorymusters: In einigen Situationen hat ein Akteur eine Antwort für eine bestimmte Anforderungsnachricht, aber Sie sind nicht an der Antwort interessiert. In diesem Fall können Sie system.ignoreRefsystem.ignoreRef() übergeben und die Anforderungsantwort in ein Feuer-und-Vergessen verwandeln. Dies ist eine Variation des über4.zweckgebundenen Antwortaggregatormusters. Dies ist eine einfache Umsetzung der Verantwortungskette Muster auf den Punkt gebracht. Vielen Dank, dass Sie es bis zum Ende gemacht haben. Sie können Visitor als eine leistungsstarke Version des Befehlsmusters behandeln. Seine Objekte können Operationen über verschiedene Objekte verschiedener Klassen ausführen.

In diesem Beispiel fügt das Besuchermuster der Klassenhierarchie geometrischer Formen XML-Exportunterstützung hinzu. Das bedeutet einfach, dass sich jedes Objekt in der Kette wie eine objektorientierte Version einer if-Bedingung verhält. Wenn eine Anforderung in die Kette kommt, wird sie, wenn sie vom ersten Objekt nicht verarbeitet werden kann, an das nächste Objekt usw. weitergegeben, bis sie behandelt oder abgelehnt wird, wenn kein Objekt sie verarbeiten kann. Sie können eine CompletableFuture verwenden, um Versprechen in Java zu implementieren. Das Problem ist, dass Sie versuchen, zwei verschiedene Dinge in der “Pipeline” zu übergeben: die Anforderung, die veränderlich ist und (manchmal) Änderungen, und das Ergebnis, das im Laufe der Anrufe akkumuliert wird. Es gab noch einen weiteren Grund für die Ablehnung. Es war sehr wahrscheinlich, dass, nachdem diese Funktion implementiert wurde, jemand aus der Marketing-Abteilung Sie bitten würde, die Möglichkeit bereitzustellen, in ein anderes Format zu exportieren, oder einige andere seltsame Sachen anzufordern. Dies würde euch zwingen, diese kostbaren und zerbrechlichen Klassen wieder zu ändern.

Während wir dabei sind, sehen wir uns ein Beispiel für das Muster des ungültigen Nachrichtenkanals an. Denken Sie daran, dass eine der Warteschlangen, die wir benötigen, eine mit dem Namen “private”-InvalidMessages” ist. Dies ist vorhanden, sodass ein MSMQ-Client (ein Nachrichtenendpunkt) eine Nachricht empfängt, die er nicht verarbeiten kann, und die seltsame Nachricht auf einen speziellen Kanal verschieben kann. Ich habe das umgangen, indem ich eine Klasse namens Pipe mit einer Anforderung und den Akkumulator für die bisherigen Ergebnisse erstellt habe. Es hat Getters für beide, und es hat ein paar Komfort-Methoden, um ein neues Objekt mit den gesammelten Ergebnissen zurückzugeben oder sogar die Anforderung zu mutieren und in einem Anruf zu akkumulieren.

This entry was posted in Non classé. Bookmark the permalink.