Technologieaustausch

Design Pattern Exploration: Chain of Responsibility Pattern

2024-07-11

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. Was ist das Chain-of-Responsibility-Modell?

Modell der Verantwortungskette (Chain of Responsibility Pattern) ist ein Verhaltensdesignmuster. Die Definition lautet wie folgt:

  • Vermeiden Sie die Kopplung von Sender und Empfänger einer Anfrage und geben Sie mehreren Objekten die Möglichkeit, die Anfrage zu bearbeiten.
  • Verbinden Sie die Objekte, die die Anfrage empfangen, zu einer Kette und leiten Sie die Anfrage entlang dieser Kette weiter, bis ein Objekt sie verarbeiten kann.
    Fügen Sie hier eine Bildbeschreibung ein

2. Die Rolle des Chain-of-Responsibility-Modells

  • Entkoppeln Sie Anfragen und Anfrageverarbeitung, um die Code-Skalierbarkeit zu verbessern.

3. Struktur des Chain-of-Responsibility-Modells

Fügen Sie hier eine Bildbeschreibung ein

Das Chain-of-Responsibility-Modell umfasst hauptsächlich die folgenden Rollen:

  • Rolle des abstrakten Handlers: Definieren Sie eine Schnittstelle zum Verarbeiten von Anforderungen, einschließlich abstrakter Verarbeitungsmethoden und einer nachfolgenden Verbindung (jeder Handler in der Kette verfügt über eine Mitgliedsvariable, um einen Verweis auf den nächsten Handler zu speichern).
  • Rolle des Betonhandlers: Implementieren Sie die Verarbeitungsmethode des abstrakten Prozessors, um zu bestimmen, ob die Anfrage verarbeitet werden kann. Wenn die Anfrage verarbeitet werden kann, verarbeiten Sie sie, andernfalls wird die Anfrage an ihren Nachfolger übertragen.
  • Kundenrolle: Erstellen Sie eine Verarbeitungskette und senden Sie eine Anforderung an das spezifische Handlerobjekt an der Spitze der Kette. Dabei sind die Verarbeitungsdetails und der Anforderungszustellungsprozess unerheblich.

In der tatsächlichen Entwicklung kann das Verantwortungskettenmodell einen Verantwortungskettenmanager hinzufügen, der bestimmte Prozessoren verwaltet.

4. Anwendung des Chain-of-Responsibility-Modells in der tatsächlichen Entwicklung

In SpringBoot gibt es viele Möglichkeiten, das Chain-of-Responsibility-Muster zu praktizieren. Das Folgende ist ein Beispiel: mehrere unabhängige Prüflogiken für einen Bestellprozess.
Fügen Sie hier eine Bildbeschreibung ein

4.1 Implementierungsmethode 1
  1. Pojo erstellen, Objekt bestellen
public class OrderContext {
    private String seqId;
    private String userId;
    private Long skuId;
    private Integer amount;
    private String userAddressId;
    // Getters and setters
}