Το μοτίβο αλυσίδας ευθύνης είναι ένα μοτίβο συμπεριφορικού σχεδιασμού που σας επιτρέπει να περάσετε ένα αίτημα κατά μήκος μιας αλυσίδας χειριστών. Αυτό το μοτίβο είναι ιδιαίτερα χρήσιμο στη δημιουργία ευέλικτων και προσαρμόσιμων αγωγών επικύρωσης δεδομένων, όπου μπορούν να προστεθούν, να αφαιρεθούν ή να αναδιοργανωθούν με ευκολία.

Κατανόηση της αλυσίδας του προτύπου ευθύνης

Η κύρια ιδέα πίσω από αυτό το μοτίβο είναι να αποσυνδέσει τον αποστολέα ενός αιτήματος από τους δέκτες του δίνοντας σε περισσότερα από ένα αντικείμενα την ευκαιρία να χειριστεί το αίτημα. Τα αντικείμενα συνδέονται σε μια αλυσίδα, και ο καθένας αποφασίζει αν θα επεξεργαστεί το αίτημα ή θα το περάσει μαζί.

Εφαρμογή αγωγού επικύρωσης

Για την εφαρμογή ενός αγωγού επικύρωσης, δημιουργήστε μια σειρά από κατηγορίες επικυρωτών, ο καθένας υπεύθυνος για έναν συγκεκριμένο κανόνα επικύρωσης. Αυτοί οι επικυρωτές συνδέονται μεταξύ τους, σχηματίζοντας μια αλυσίδα μέσω της οποίας τα δεδομένα περνούν. Αν ένας επικυρωτής ανιχνεύει άκυρα δεδομένα, μπορεί να σταματήσει τη διαδικασία ή να χειριστεί το σφάλμα αναλόγως.

Δημιουργία της διεπαφής επικύρωσης

Καθορίστε μια κοινή διεπαφή για όλους τους επικυρωτές ώστε να εξασφαλίζεται η συνοχή. Αυτή η διεπαφή θα πρέπει να περιλαμβάνει μια μέθοδο για τον καθορισμό του επόμενου επικυρωτή και μια μέθοδο για την επικύρωση των δεδομένων.

Παράδειγμα PHP:

Διασύνδεση Επικύρωση {[[LFT:2]]   Δημόσια λειτουργία setNext(Επικυρωτής Εξοχοποιητή: Επικύρωση;[[LFT:3]]   Δημόσια λειτουργία επικύρωσης($data): bol;

Εφαρμογή επικυρωτών σκυροδέματος

Κάθε επικυρωτής σκυροδέματος υλοποιεί τη διασύνδεση Επικύρωσης. Για παράδειγμα, ένας επικυρωτής για τον έλεγχο αν τα δεδομένα δεν είναι άδεια:

και [pmp:p&b] και [pp&b] και [p&b]] [[p&b] και [p&b]] [[p&b] και [p&b]]] [[p&b] και [p&b]]] και [p&b]] [[p&b] και [p&b]]] [[p&b] και [p&b]]] [[p&b] και [p&b]]] [[p&b] και [p&b]]]] [[p&b] και [p&b]]] και [p&b]]] [p&n&n&b]] [p&b]] [p&b] και [p&b]]] [p&b] και [p&n&b]]]]] [[p&b]]]] [[p&b&n&b]]]]]][[[p&b&n&b]]]]][p&n&n&n&n&b& [[LFT:18]]       return true; [[LFT:18]]   }[[LFT:19]]] }

Κατασκευή μιας Ευέλικτης Αλυσίδας Επικύρωσης

Για να δημιουργήσετε έναν αγωγό επικύρωσης, κάντε άμεση επαλήθευση αντικειμένων και συνδέστε τα με τη μέθοδο setNext. Αυτό επιτρέπει δυναμική διαμόρφωση των βημάτων επικύρωσης με βάση συγκεκριμένες απαιτήσεις.

Παράδειγμα:

$notEmptyValidator = νέος NotEmptyValidator()];

$emailValidator = νέος υπολογιστής ηλεκτρονικού ταχυδρομείου (;)

$notEmptyValidator->setNext($emailValidator);

Αυτή η ρύθμιση εξασφαλίζει ότι τα δεδομένα ελέγχονται πρώτα για κενό, στη συνέχεια επικυρώνεται ως email αν ο πρώτος έλεγχος περάσει.

Πλεονεκτήματα της Χρήσης του Μοτίβου

  • Ευέλικτοι και δυναμικοί αγωγοί επικύρωσης
  • Εύκολο να προσθέσετε, αφαιρέστε, ή να αναδιοργανώσετε τα βήματα επικύρωσης
  • Αποκλείει τη λογική επικύρωσης από την επεξεργασία δεδομένων
  • Βελτιώνει τη διατηρησιμότητα και την κλιμακωσιμότητα του κώδικα

Με την εφαρμογή του μοτίβου αλυσίδας ευθύνης, οι προγραμματιστές μπορούν να δημιουργήσουν ισχυρά και προσαρμόσιμα συστήματα επικύρωσης δεδομένων που καλύπτουν τις ποικίλες ανάγκες εφαρμογής αποτελεσματικά.