Table of Contents
Pola Rantai Ketanggungan adalah pola desain perilaku yang memungkinkan Anda untuk menyampaikan permintaan di sepanjang rantai pengendali. Pola ini sangat berguna dalam menciptakan saluran pipa validasi data yang fleksibel dan dapat disesuaikan, di mana langkah validasi ganda dapat ditambahkan, dihapus, atau diurut kembali dengan mudah.
Memahami Rantai Pola Tanggung Jawab
Ide utama di balik pola ini adalah untuk mencabut pengirim permintaan dari penerimanya dengan memberikan lebih dari satu objek kesempatan untuk menangani permintaan. Objek-objek dihubungkan dalam sebuah rantai, dan masing-masing memutuskan apakah untuk memproses permintaan atau melewatinya bersama.
Tanpa Nama yang Dilaksanakan dalam Pipa Validasi
Untuk menerapkan pipa validasi, buat serangkaian kelas validator, yang masing-masing bertanggung jawab untuk aturan validasi tertentu. Validator ini dihubungkan bersama, membentuk rantai yang melaluinya data pass. Jika sebuah validator mendeteksi data yang tidak valid, ia dapat menghentikan proses atau menangani kesalahan sesuai.
Coreasing the Validator Interface
Takrifkan sebuah antarmuka umum untuk semua validator untuk memastikan konsistensi. Antarmuka ini harus menyertakan metode untuk menetapkan validator berikutnya dan metode untuk memvalidasi data.
Contoh dalam PHP:
[ZOZT:0]]Validator antarmuka] {
fungsi public setNext(Validator $validator): Validator;
fungsi publik validate($data): bool;
Pencahar Kontek
Sebagai contoh, sebuah validator untuk memeriksa apakah data tidak kosong:
Terapkan Validator
] &bsp; valbsbs: validator {[fT:1] n]]; ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]] ]]; ]] ]] ]] ]] ]] ]] ]]; ]] ]] ]] ]] ]] ]] ]]; ]] ]] ]] ]] ]]; ]] ]]p; ]] ]] ]] ]]; ]] ]] ]]; ]] ]] ]] ]] ]]]]; ]]]]; ]]; ]]; ]]]]]]; ]]; ]] ]] ]]]] ]] ]] ]] ]]]]; ]] ]]; ]]; ]]; ]]; ]]]]]]]]; ]] ]]; ]]; ]]]]]] ¡nbsp; return true;
] }
] }
Membina Rantai Pembenaran yang Dapat Dituntut
Untuk membuat saluran pipa validasi, instantiate validator objek dan menghubungkannya bersama-sama menggunakan metode setNext. Hal ini memungkinkan konfigurasi dinamis langkah validasi berdasarkan persyaratan tertentu.
Contoh [email protected]
[[NOLT:0]]$notEventValidator = baru Not EventValidator();
[[NexpaniaFLT:0]]$emailValidator = E-mailValidator baru (;]
[[Next]$notEventValidator->setNext($emailValidator);[
Kesiapan ini memastikan bahwa data pertama kali diperiksa untuk kekosongan, kemudian divalidasi sebagai email jika cek pertama lewat.
Keuntungan Menggunakan Pola
- Jalur pipa yang fleksibel dan dinamis dan tervalidasi yang dinamis
- Mudah untuk menambahkan, menghapus, atau memerintahkan kembali langkah validasi
- Logika validasi hiasan dari pengolahan data
- Kemampuan dan kepekaan mempertahankan kode
Dengan menerapkan pola Rantai Ketanggungan, pengembang dapat membuat sistem validasi data yang kuat dan mudah beradaptasi yang memenuhi kebutuhan aplikasi yang beragam secara efisien.