Vastuullisuusketju on käyttäytymismalli, jonka avulla voit siirtää pyynnön käsittelyketjussa. Tämä malli on erityisen hyödyllinen luotaessa joustavia ja muokattavissa olevia tietojen validointiputkistoja, joissa voidaan lisätä, poistaa tai tilata uudelleen helposti.

Vastuullisuuden ketjun ymmärtäminen

Tämän kaavan pääajatuksena on erottaa pyynnön lähettäjä sen vastaanottajista antamalla useammalle kuin yhdelle esineelle mahdollisuus käsitellä pyyntöä. Esineet on yhdistetty ketjuun, ja jokainen päättää, käsitelläänkö pyyntö vai siirretäänkö se eteenpäin.

Validointiputken käyttöönotto

Validointiputken toteuttamiseksi luodaan sarja validointiluokkia, joista jokainen vastaa tietystä validointisäännöstä. Nämä varmentajat on yhdistetty toisiinsa muodostaen ketjun, jonka kautta tiedot kulkevat. Jos varmentaja havaitsee virheellisiä tietoja, se voi keskeyttää prosessin tai käsitellä virheen sen mukaisesti.

Validaattorin käyttöliittymän luominen

Määrittele yhteinen rajapinta kaikille validaattoreille johdonmukaisuuden varmistamiseksi. Tähän rajapintaan tulisi sisältyä menetelmä seuraavan validaattorin ja tietojen validoinnin validoimiseksi.

Esimerkki PHP:ssä:

interface Validator[ {[
]   public function setNext(Validator $validator: Validator;[
  public function certification($data): bool;

Konkreettisen validoinnin toteuttaminen

Jokainen betonivalvadari toteuttaa Validator-rajapinnan. Esimerkiksi validoija tarkistaa, jos tiedot eivät ole tyhjiä:

luokka ei-EmptyValitator toteuttaa Validator[ {
   private $nextValidator;[

] [[nbsp;  nbsp; julkinen toimintosarjaNext(Validator $validator:9;sp; nbsp; nbsp;    $this->nextValidator = $validator;
]      $bsp; [

    return true;
  }[
]

Joustavan validointiketjun rakentaminen

Validointiputken luomiseksi instantioi validaattorin objektit ja liitä ne yhteen setNext-menetelmällä. Tämä mahdollistaa tiettyjen vaatimusten mukaisten validointivaiheiden dynaamisen konfiguroinnin.

Esimerkki:

$notEmptyValidator = uusi NotEmptyValidator();[]

$emailValidator = uusi sähköpostivalidator(][]

$notEmptyValidator->setNext($emailValidator]

Tämä asetus varmistaa, että tiedot tarkistetaan ensin tyhjyyden varalta ja validoidaan sähköpostiksi, jos ensimmäinen tarkistus menee läpi.

Etuja Käyttäminen kuvion

  • Joustavat ja dynaamiset validointiputket
  • Helppo lisätä, poistaa tai tilata validointivaiheita
  • Poistaa validointilogiikan tietojenkäsittelystä
  • Parantaa koodien säilyvyyttä ja skaalautuvuutta

Toteuttamalla Vastuullisuusketjun mallin kehittäjät voivat luoda vankat ja mukautuvat tiedon validointijärjestelmät, jotka vastaavat tehokkaasti erilaisia sovellustarpeita.