Posts

Es werden Posts vom Dezember, 2023 angezeigt.

Strategy Pattern

Bild
  Strategy Pattern Das Strategy Pattern ist ein Design Pattern, das zu den Behavioral Patterns gehört. Es ermöglicht die Definition einer Gruppe von Algorithmen, welche dann zur Laufzeit ausgetauscht werden können. Aufbau Das Strategy Pattern besteht aus drei Komponenten. Das Strategy Interface definiert die Funktionen, welche dann von den spezifischen Strategy Klassen implementiert werden. Die Implementationen nennt man " Concrete Strategies " Der Context führt das gewünschte Verhalten aus und kann die Strategy zur Laufzeit anpassen.  Anwendungsbeispiel In meinem Beispiel möchte ich einen Shop entwickeln, welcher mehrere Zahlungsmethoden anbietet. Für den Zahlungsvorgang habe ich die folgende Klasse erstellt: Das Problem an dieser Lösung ist, dass der Code schwierig zu erweitern ist. Jedes mal, wenn eine neue Zahlungsmethode hinzukommt, muss ich im Switch-Case einen weiteren Fall mit der Logik für die neue Zahlungsmethode einbauen. Dabei ist das Ergebnis der verschiedenen Za...

RabbitMQ .NET

Bild
  RabbitMQ .NET RabbitMQ ist ein Message Broker, was bedeutet, dass er als Vermittler von Nachrichten zwischen verschiedenen Komponenten dient. Dafür benötigt man einen Server, worauf RabbitMQ läuft. Die Nachrichten werden also nicht direkt gesendet, sondern gehen zuerst zum RabbitMQ Server und dann zum Empfänger. Dadurch müssen sich die Komponenten nicht kennen oder aufeinander warten. RabbitMQ unterstützt Warteschlangen, welche Nachrichten solange speichern, bis sie ausgelesen wurden. In diesem Blogpost werden wir uns genauer mit RabbitMQ befassen und schauen, wie man es in C#/.NET verwendet. Anforderungen Bevor wir mit dem Programmieren starten können, brauchen wir noch einen Docker Container, worauf RabbitMQ läuft und müssen das NugetPackage installieren. Docker Um RabbitMQ herunterzuladen und einen Docker Container zu erstellen, verwendet man diesen Befehl: docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.12-management Nuget Package Für das Nuget Pack...