Arti dari pola strategi adalah untuk menentukan serangkaian algoritma, merangkumnya satu per satu, dan membuatnya dapat diganti.
Contoh kecil dapat membuat kita jelas sekilas.
Mengingat metode animate di jQuery.
Salinan kode adalah sebagai berikut:
$ (div) .animate ({"kiri: 200px"}, 1000, 'linear'); // bergerak secara seragam
$ (div) .animate ({"kiri: 200px"}, 1000, 'kubik'); // Godaan Kekuatan Kubik
Kedua kode ini membuat div bergerak 200 piksel ke kanan dalam 1000ms. Linear (kecepatan konstan) dan kubik (pelonggaran daya clums) adalah paket mode strategi.
Mari kita ambil contoh lain. Pada paruh pertama tahun ini, saya menulis dev.qplus.com, banyak halaman akan memiliki formulir verifikasi instan. Setiap anggota formulir akan memiliki beberapa aturan verifikasi yang berbeda.
Misalnya, di kotak nama, perlu memverifikasi situasi seperti kata-kata yang tidak kosong, sensitif, dan karakter berlebihan. Tentu saja, Anda dapat menulis 3 jika lain untuk menyelesaikan masalah, tetapi skalabilitas dan pemeliharaan kode penulisan dengan cara ini dapat dibayangkan. Jika ada lebih banyak elemen dalam bentuk dan lebih banyak situasi verifikasi, bukan tidak mungkin untuk menulis ratusan jika total.
Jadi pendekatan yang lebih baik adalah merangkum setiap aturan verifikasi secara terpisah menggunakan pola kebijakan. Ketika Anda perlu memverifikasi jenis verifikasi mana, Anda hanya perlu memberikan nama kebijakan ini. Seperti ini:
Salinan kode adalah sebagai berikut:
nameInput.addvalidata ({
Notnull: Benar,
Dirtywords: Benar,
Maxlength: 30
})
NOTNULL, MAXLength dan metode lain hanya perlu mengembalikan benar atau salah secara seragam untuk menunjukkan apakah mereka telah melewati verifikasi.
Salin kode sebagai berikut: validatalist = {
notnull: function (value) {
nilai pengembalian! == ”;
},
maxlength: function (value, maxlen) {
return value.length ()> maxlen;
}
}
Seperti yang dapat dilihat, berbagai aturan verifikasi mudah dimodifikasi dan diganti satu sama lain. Jika suatu hari manajer produk menyarankan bahwa batas untuk karakter yang terlalu lama diubah menjadi 60 karakter. Itu hanya membutuhkan 0,5 detik untuk menyelesaikan pekerjaan.